diff --git a/stand/libsa/zalloc_malloc.c b/stand/libsa/zalloc_malloc.c index 2cc14d80641d..f0eddb123178 100644 --- a/stand/libsa/zalloc_malloc.c +++ b/stand/libsa/zalloc_malloc.c @@ -156,7 +156,9 @@ Realloc(void *ptr, size_t size, const char *file, int line) if ((res = Malloc(size, file, line)) != NULL) { if (ptr) { - old = *(size_t *)((char *)ptr - MALLOCALIGN) - MALLOCALIGN; + Guard *g = (Guard *)((char *)ptr - MALLOCALIGN); + + old = g->ga_Bytes - MALLOCALIGN; if (old < size) bcopy(ptr, res, old); else