Skip to content

Commit d8d14bd

Browse files
heicarsttorvalds
authored andcommitted
fs/compat: fix lookup_dcookie() parameter handling
Commit d5dc77b ("consolidate compat lookup_dcookie()") coverted all architectures to the new compat_sys_lookup_dcookie() syscall. The "len" paramater of the new compat syscall must have the type compat_size_t in order to enforce zero extension for architectures where the ABI requires that the caller of a function performed zero and/or sign extension to 64 bit of all parameters. Signed-off-by: Heiko Carstens <heiko.carstens@de.ibm.com> Cc: Al Viro <viro@zeniv.linux.org.uk> Cc: Ingo Molnar <mingo@kernel.org> Cc: "H. Peter Anvin" <hpa@zytor.com> Cc: Hendrik Brueckner <brueckner@linux.vnet.ibm.com> Cc: Martin Schwidefsky <schwidefsky@de.ibm.com> Cc: <stable@vger.kernel.org> [v3.10+] Signed-off-by: Andrew Morton <akpm@linux-foundation.org> Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
1 parent dfd948e commit d8d14bd

File tree

2 files changed

+2
-2
lines changed

2 files changed

+2
-2
lines changed

fs/dcookies.c

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -204,7 +204,7 @@ SYSCALL_DEFINE3(lookup_dcookie, u64, cookie64, char __user *, buf, size_t, len)
204204
}
205205

206206
#ifdef CONFIG_COMPAT
207-
COMPAT_SYSCALL_DEFINE4(lookup_dcookie, u32, w0, u32, w1, char __user *, buf, size_t, len)
207+
COMPAT_SYSCALL_DEFINE4(lookup_dcookie, u32, w0, u32, w1, char __user *, buf, compat_size_t, len)
208208
{
209209
#ifdef __BIG_ENDIAN
210210
return sys_lookup_dcookie(((u64)w0 << 32) | w1, buf, len);

include/linux/compat.h

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -422,7 +422,7 @@ extern long compat_arch_ptrace(struct task_struct *child, compat_long_t request,
422422
asmlinkage long compat_sys_ptrace(compat_long_t request, compat_long_t pid,
423423
compat_long_t addr, compat_long_t data);
424424

425-
asmlinkage long compat_sys_lookup_dcookie(u32, u32, char __user *, size_t);
425+
asmlinkage long compat_sys_lookup_dcookie(u32, u32, char __user *, compat_size_t);
426426
/*
427427
* epoll (fs/eventpoll.c) compat bits follow ...
428428
*/

0 commit comments

Comments
 (0)