mirror of
https://mirrors.bfsu.edu.cn/git/linux.git
synced 2024-11-13 14:24:11 +08:00
tools/nolibc/stdlib: fix memory error in realloc()
Pass user_p_len to memcpy() instead of heap->len to prevent realloc()
from copying an extra sizeof(heap) bytes from beyond the allocated
region.
Signed-off-by: Brennan Xavier McManus <bxmcmanus@gmail.com>
Cc: stable@vger.kernel.org
Reviewed-by: Ammar Faizi <ammarfaizi2@gnuweeb.org>
Fixes: 0e0ff63840
("tools/nolibc/stdlib: Implement `malloc()`, `calloc()`, `realloc()` and `free()`")
Signed-off-by: Willy Tarreau <w@1wt.eu>
Signed-off-by: Thomas Weißschuh <linux@weissschuh.net>
This commit is contained in:
parent
4cece76496
commit
791f464114
@ -185,7 +185,7 @@ void *realloc(void *old_ptr, size_t new_size)
|
||||
if (__builtin_expect(!ret, 0))
|
||||
return NULL;
|
||||
|
||||
memcpy(ret, heap->user_p, heap->len);
|
||||
memcpy(ret, heap->user_p, user_p_len);
|
||||
munmap(heap, heap->len);
|
||||
return ret;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user