Message ID | 52127621.3030106@linaro.org |
---|---|
State | Superseded |
Headers | show |
When fixing a user-visible bug, please file a bug in Bugzilla for it if there isn't one already open, then include the [BZ #N] in your ChangeLog entry. (In these overflow cases, arguably there should be a CVE as well, but someone else can handle that if appropriate.)
diff --git a/malloc/malloc.c b/malloc/malloc.c index be472b2..7468758 100644 --- a/malloc/malloc.c +++ b/malloc/malloc.c @@ -3082,6 +3082,10 @@ __libc_pvalloc(size_t bytes) size_t page_mask = GLRO(dl_pagesize) - 1; size_t rounded_bytes = (bytes + page_mask) & ~(page_mask); + /* Check for overflow. */ + if (bytes + 2*pagesz + MINSIZE < bytes) + return 0; + void *(*hook) (size_t, size_t, const void *) = force_reg (__memalign_hook); if (__builtin_expect (hook != NULL, 0))