diff --git a/mxml.c b/mxml.c index 68a7cc5..54a8138 100755 --- a/mxml.c +++ b/mxml.c @@ -1431,11 +1431,11 @@ PMXML_NODE mxml_parse_entity(char **buf, char *error, int error_size) if (buffer == NULL) { return read_error(HERE, "Cannot allocate memory."); } + strcpy(buffer, *buf); + free(*buf); p = buffer; - strcpy(buffer, *buf); - free(*buf); /* search !ENTITY */ do { @@ -1805,6 +1805,7 @@ PMXML_NODE mxml_parse_entity(char **buf, char *error, int error_size) } *pv++ = *p++; } while (*p); + *pv = 0; free(buffer); for (ip = 0; ip < MXML_MAX_ENTITY; ip++)