mirror of
https://github.com/subsurface/subsurface.git
synced 2025-02-19 22:16:15 +00:00
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:
parent
05b00742c6
commit
2c689964ab
1 changed files with 5 additions and 3 deletions
8
file.c
8
file.c
|
@ -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;
|
||||
}
|
||||
|
|
Loading…
Add table
Reference in a new issue