diff options
author | Stephen Rothwell <sfr@canb.auug.org.au> | 2006-02-02 16:11:51 +1100 |
---|---|---|
committer | Linus Torvalds <torvalds@g5.osdl.org> | 2006-02-01 22:04:33 -0800 |
commit | 9ad11ab48b1ad618bf47076e9e579f267f5306c2 (patch) | |
tree | b0b06f4455d9796fc5003add2067f2dbc225fc53 /include | |
parent | 8aeba3c62a64e0f6527d1a0388b1a6a7060158ba (diff) | |
download | linux-9ad11ab48b1ad618bf47076e9e579f267f5306c2.tar.gz linux-9ad11ab48b1ad618bf47076e9e579f267f5306c2.tar.bz2 linux-9ad11ab48b1ad618bf47076e9e579f267f5306c2.zip |
[PATCH] compat: fix compat_sys_openat and friends
Most of the 64 bit architectures will zero extend the first argument to
compat_sys_{openat,newfstatat,futimesat} which will fail if the 32 bit
syscall was passed AT_FDCWD (which is a small negative number). Declare
the first argument to be an unsigned int which will force the correct
sign extension when the internal functions are called in each case.
Also, do some small white space cleanups in fs/compat.c.
Signed-off-by: Stephen Rothwell <sfr@canb.auug.org.au>
Acked-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Linus Torvalds <torvalds@osdl.org>
Diffstat (limited to 'include')
-rw-r--r-- | include/linux/syscalls.h | 6 |
1 files changed, 3 insertions, 3 deletions
diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h index fdbd436b24cc..3877209d23c3 100644 --- a/include/linux/syscalls.h +++ b/include/linux/syscalls.h @@ -559,12 +559,12 @@ asmlinkage long sys_newfstatat(int dfd, char __user *filename, struct stat __user *statbuf, int flag); asmlinkage long sys_readlinkat(int dfd, const char __user *path, char __user *buf, int bufsiz); -asmlinkage long compat_sys_futimesat(int dfd, char __user *filename, +asmlinkage long compat_sys_futimesat(unsigned int dfd, char __user *filename, struct compat_timeval __user *t); -asmlinkage long compat_sys_newfstatat(int dfd, char __user * filename, +asmlinkage long compat_sys_newfstatat(unsigned int dfd, char __user * filename, struct compat_stat __user *statbuf, int flag); -asmlinkage long compat_sys_openat(int dfd, const char __user *filename, +asmlinkage long compat_sys_openat(unsigned int dfd, const char __user *filename, int flags, int mode); #endif |