diff options
author | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2014-04-16 23:16:15 +0200 |
---|---|---|
committer | Samuel Thibault <samuel.thibault@ens-lyon.org> | 2014-04-16 23:16:15 +0200 |
commit | fd15a59b20220a2d89d628ecebfcaad1ddefe871 (patch) | |
tree | 4b5f1de23e83a02f4c5c5b39701cad55267e43e8 /sysdeps/mach/munmap.c | |
parent | f19dfa0afd3879cb09e9c6efd7df58e1ee02c029 (diff) | |
download | glibc-fd15a59b20220a2d89d628ecebfcaad1ddefe871.zip glibc-fd15a59b20220a2d89d628ecebfcaad1ddefe871.tar.gz glibc-fd15a59b20220a2d89d628ecebfcaad1ddefe871.tar.bz2 |
hurd: Do not allow unmapping address 0
* sysdeps/mach/munmap.c (__munmap): Return EINVAL if `addr' is 0.
Diffstat (limited to 'sysdeps/mach/munmap.c')
-rw-r--r-- | sysdeps/mach/munmap.c | 7 |
1 files changed, 7 insertions, 0 deletions
diff --git a/sysdeps/mach/munmap.c b/sysdeps/mach/munmap.c index f8c416f..cfd5daa 100644 --- a/sysdeps/mach/munmap.c +++ b/sysdeps/mach/munmap.c @@ -27,6 +27,13 @@ int __munmap (__ptr_t addr, size_t len) { kern_return_t err; + + if (addr == 0) + { + errno = EINVAL; + return -1; + } + if (err = __vm_deallocate (__mach_task_self (), (vm_address_t) addr, (vm_size_t) len)) { |