stringlist_t *stringlistappend(stringlist_t *current, char *text)
{
stringlist_t *newitem;
- newitem = (stringlist_t *)Z_Malloc(strlen(text) + 1 + sizeof(stringlist_t));
+ size_t textlen;
+
+ textlen = strlen(text) + 1;
+ newitem = (stringlist_t *)Z_Malloc(textlen + sizeof(stringlist_t));
newitem->next = NULL;
newitem->text = (char *)(newitem + 1);
- strcpy(newitem->text, text);
+ memcpy(newitem->text, text, textlen);
if (current)
current->next = newitem;
return newitem;