diff options
Diffstat (limited to 'src/mman/mremap.c')
-rw-r--r-- | src/mman/mremap.c | 9 |
1 files changed, 8 insertions, 1 deletions
diff --git a/src/mman/mremap.c b/src/mman/mremap.c index 596c45fb..1096ace1 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); |