diff options
Diffstat (limited to 'src')
| -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); | 
