From 5cf32d70400f82d09d2654d5ca3af0ff8a514836 Mon Sep 17 00:00:00 2001 From: GNU Libc Maintainers Date: Sat, 16 Dec 2017 14:37:43 +0000 Subject: [PATCH] cvs-malloc-hardening 2017-03-17 Chris Evans * malloc/malloc.c (unlink): Add consistency check between size and next->prev->size, to further harden against 1-byte overflows. Gbp-Pq: Topic any Gbp-Pq: Name cvs-malloc-hardening.diff --- malloc/malloc.c | 2 ++ 1 file changed, 2 insertions(+) diff --git a/malloc/malloc.c b/malloc/malloc.c index 4e076638b..88d1d167b 100644 --- a/malloc/malloc.c +++ b/malloc/malloc.c @@ -1376,6 +1376,8 @@ typedef struct malloc_chunk *mbinptr; /* Take a chunk off a bin list */ #define unlink(AV, P, BK, FD) { \ + if (__builtin_expect (chunksize(P) != prev_size (next_chunk(P)), 0)) \ + malloc_printerr (check_action, "corrupted size vs. prev_size", P, AV); \ FD = P->fd; \ BK = P->bk; \ if (__builtin_expect (FD->bk != P || BK->fd != P, 0)) \ -- 2.30.2