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>"));
|
buf = realloc(mem->buffer, mem->size + strlen("<csv></csv>"));
|
||||||
if (buf != NULL) {
|
if (buf != NULL) {
|
||||||
memmove(buf + 5, mem->buffer, mem->size);
|
memmove(buf + 5, buf, mem->size);
|
||||||
memcpy(buf, "<csv>", 5);
|
memcpy(buf, "<csv>", 5);
|
||||||
memcpy(mem->buffer + mem->size + 5, "</csv>", 7);
|
memcpy(buf + mem->size + 5, "</csv>", 7);
|
||||||
mem->buffer = buf;
|
|
||||||
mem->size += strlen("<csv></csv>");
|
mem->size += strlen("<csv></csv>");
|
||||||
|
mem->buffer = buf;
|
||||||
} else {
|
} else {
|
||||||
|
/* we can atleast try to strdup a error... */
|
||||||
|
*error = strdup("realloc failed in __func__\n");
|
||||||
free(mem->buffer);
|
free(mem->buffer);
|
||||||
return 1;
|
return 1;
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Reference in a new issue