fix undefined behavior in free

This commit is contained in:
Alexander Monakov 2017-06-27 20:58:47 +03:00 committed by Rich Felker
parent f688884061
commit 60ab365cae
1 changed files with 3 additions and 2 deletions

View File

@ -450,14 +450,15 @@ copy_realloc:
void free(void *p)
{
struct chunk *self = MEM_TO_CHUNK(p);
struct chunk *next;
struct chunk *self, *next;
size_t final_size, new_size, size;
int reclaim=0;
int i;
if (!p) return;
self = MEM_TO_CHUNK(p);
if (IS_MMAPPED(self)) {
size_t extra = self->psize;
char *base = (char *)self - extra;