diff options
author | Andreas Jaeger <aj@suse.de> | 2000-07-24 16:52:03 +0000 |
---|---|---|
committer | Andreas Jaeger <aj@suse.de> | 2000-07-24 16:52:03 +0000 |
commit | efd70b34d9c2a882297f8824b906b95b2646042f (patch) | |
tree | f2570fde69aaad01ee4ede6e67e75230bdc78397 /sysdeps/unix/sysv/linux | |
parent | 72eb7808976fc1cf8747f36917767c089cb82d97 (diff) | |
download | glibc-efd70b34d9c2a882297f8824b906b95b2646042f.tar glibc-efd70b34d9c2a882297f8824b906b95b2646042f.tar.gz glibc-efd70b34d9c2a882297f8824b906b95b2646042f.tar.bz2 glibc-efd70b34d9c2a882297f8824b906b95b2646042f.zip |
(__mmap64): Really fix check for offset.
Diffstat (limited to 'sysdeps/unix/sysv/linux')
-rw-r--r-- | sysdeps/unix/sysv/linux/powerpc/mmap64.c | 13 |
1 files changed, 6 insertions, 7 deletions
diff --git a/sysdeps/unix/sysv/linux/powerpc/mmap64.c b/sysdeps/unix/sysv/linux/powerpc/mmap64.c index 5b7f1c47a9..f799b05106 100644 --- a/sysdeps/unix/sysv/linux/powerpc/mmap64.c +++ b/sysdeps/unix/sysv/linux/powerpc/mmap64.c @@ -40,15 +40,13 @@ __ptr_t __mmap64 (__ptr_t addr, size_t len, int prot, int flags, int fd, off64_t offset) { #ifdef __NR_mmap2 - if (! (offset & PAGE_MASK)) - { - __set_errno (EINVAL); - return MAP_FAILED; - } - + if ( # ifndef __ASSUME_MMAP2_SYSCALL - if (! have_no_mmap2) + ! have_no_mmap2 && +# endif + ! (offset & ~PAGE_MASK)) { +# ifndef __ASSUME_MMAP2_SYSCALL int saved_errno = errno; # endif /* This will be always 12, no matter what page size is. */ @@ -67,6 +65,7 @@ __mmap64 (__ptr_t addr, size_t len, int prot, int flags, int fd, off64_t offset) # ifndef __ASSUME_MMAP2_SYSCALL __set_errno (saved_errno); have_no_mmap2 = 1; +# endif } #endif if (offset != (off_t) offset || (offset + len) != (off_t) (offset + len)) |