Don't use old pointer after realloc

If realloc moved the memory, we shouldn't try to access it. realloc
copied that memory so access it via the new function instead.

Signed-off-by: Anton Lundin <glance@acc.umu.se>
Signed-off-by: Dirk Hohndel <dirk@hohndel.org>
This commit is contained in:
Anton Lundin 2013-12-11 21:21:49 +01:00 committed by Dirk Hohndel
parent 05b00742c6
commit 2c689964ab

8
file.c
View file

@ -117,12 +117,14 @@ static int try_to_xslt_open_csv(const char *filename, struct memblock *mem, char
*/
buf = realloc(mem->buffer, mem->size + strlen("<csv></csv>"));
if (buf != NULL) {
memmove(buf + 5, mem->buffer, mem->size);
memmove(buf + 5, buf, mem->size);
memcpy(buf, "<csv>", 5);
memcpy(mem->buffer + mem->size + 5, "</csv>", 7);
mem->buffer = buf;
memcpy(buf + mem->size + 5, "</csv>", 7);
mem->size += strlen("<csv></csv>");
mem->buffer = buf;
} else {
/* we can atleast try to strdup a error... */
*error = strdup("realloc failed in __func__\n");
free(mem->buffer);
return 1;
}