aboutsummaryrefslogtreecommitdiff
path: root/libpsn00b/libc/malloc.c
diff options
context:
space:
mode:
Diffstat (limited to 'libpsn00b/libc/malloc.c')
-rw-r--r--libpsn00b/libc/malloc.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/libpsn00b/libc/malloc.c b/libpsn00b/libc/malloc.c
index 4d6dbef..74a5087 100644
--- a/libpsn00b/libc/malloc.c
+++ b/libpsn00b/libc/malloc.c
@@ -199,7 +199,7 @@ __attribute__((weak)) void *realloc(void *ptr, size_t size) {
// New memory block shorter?
if (prev->size >= _size) {
TrackHeapUsage(size - prev->size);
- prev->size = _size;
+ prev->size = _size - sizeof(BlockHeader);
if (!prev->next)
sbrk((ptr - sbrk(0)) + _size);
@@ -214,14 +214,14 @@ __attribute__((weak)) void *realloc(void *ptr, size_t size) {
return 0;
TrackHeapUsage(size - prev->size);
- prev->size = _size;
+ prev->size = _size - sizeof(BlockHeader);
return ptr;
}
// Do we have free memory after it?
if (((prev->next)->ptr - ptr) > _size) {
TrackHeapUsage(size - prev->size);
- prev->size = _size;
+ prev->size = _size - sizeof(BlockHeader);
return ptr;
}