diff options
Diffstat (limited to 'libc/stdlib')
| -rw-r--r-- | libc/stdlib/malloc-simple/alloc.c | 3 | 
1 files changed, 2 insertions, 1 deletions
| diff --git a/libc/stdlib/malloc-simple/alloc.c b/libc/stdlib/malloc-simple/alloc.c index 321f31932..6689ef409 100644 --- a/libc/stdlib/malloc-simple/alloc.c +++ b/libc/stdlib/malloc-simple/alloc.c @@ -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; | 
