OSDN Git Service

POSIX says you can use realloc() to shrink buffers ... make sure we dont trigger...
authorMike Frysinger <vapier@gentoo.org>
Wed, 11 Apr 2007 22:52:20 +0000 (22:52 -0000)
committerMike Frysinger <vapier@gentoo.org>
Wed, 11 Apr 2007 22:52:20 +0000 (22:52 -0000)
libc/stdlib/malloc-simple/alloc.c

index 321f319..6689ef4 100644 (file)
@@ -91,7 +91,8 @@ void *realloc(void *ptr, size_t size)
 
        newptr = malloc(size);
        if (newptr) {
-               memcpy(newptr, ptr, *((size_t *) (ptr - sizeof(size_t))));
+               size_t old_size = *((size_t *) (ptr - sizeof(size_t)));
+               memcpy(newptr, ptr, (old_size < size ? old_size : size));
                free(ptr);
        }
        return newptr;