|
Message-Id: <1446282885-5290-1-git-send-email-danielmicay@gmail.com> Date: Sat, 31 Oct 2015 05:14:45 -0400 From: Daniel Micay <danielmicay@...il.com> To: musl@...ts.openwall.com Cc: Daniel Micay <danielmicay@...il.com> Subject: [PATCH] prevent allocs than PTRDIFF_MAX via mremap It's quite feasible for this to happen via MREMAP_MAYMOVE. --- src/mman/mremap.c | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/src/mman/mremap.c b/src/mman/mremap.c index 596c45f..1096ace 100644 --- a/src/mman/mremap.c +++ b/src/mman/mremap.c @@ -1,5 +1,7 @@ #include <unistd.h> #include <sys/mman.h> +#include <errno.h> +#include <stdint.h> #include <stdarg.h> #include "syscall.h" #include "libc.h" @@ -8,7 +10,12 @@ void *__mremap(void *old_addr, size_t old_len, size_t new_len, int flags, ...) { va_list ap; void *new_addr; - + + if (new_len >= PTRDIFF_MAX) { + errno = ENOMEM; + return MAP_FAILED; + } + va_start(ap, flags); new_addr = va_arg(ap, void *); va_end(ap); -- 2.6.2
Powered by blists - more mailing lists
Confused about mailing lists and their use? Read about mailing lists on Wikipedia and check out these guidelines on proper formatting of your messages.