From: Greg Kroah-Hartman Date: Thu, 15 Jan 2009 17:24:52 +0000 (-0800) Subject: fix problem with inotify in .28 X-Git-Tag: v2.6.27.12~8 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=9e7b1bfaca84f45ce0937b0e9f548254d5a4acc2;p=thirdparty%2Fkernel%2Fstable-queue.git fix problem with inotify in .28 --- diff --git a/queue-2.6.28/0039--CVE-2009-0029-System-call-wrappers-part-29.patch b/queue-2.6.28/0039--CVE-2009-0029-System-call-wrappers-part-29.patch index aff335e5611..9f1449d05ac 100644 --- a/queue-2.6.28/0039--CVE-2009-0029-System-call-wrappers-part-29.patch +++ b/queue-2.6.28/0039--CVE-2009-0029-System-call-wrappers-part-29.patch @@ -30,7 +30,7 @@ Signed-off-by: Greg Kroah-Hartman return ret; } --asmlinkage long sys_inotify_rm_watch(int fd, u32 wd) +-asmlinkage long sys_inotify_rm_watch(int fd, __s32 wd) +SYSCALL_DEFINE2(inotify_rm_watch, int, fd, __s32, wd) { struct file *filp; diff --git a/queue-2.6.28/inotify-fix-type-errors-in-interfaces.patch b/queue-2.6.28/inotify-fix-type-errors-in-interfaces.patch new file mode 100644 index 00000000000..d4d65969491 --- /dev/null +++ b/queue-2.6.28/inotify-fix-type-errors-in-interfaces.patch @@ -0,0 +1,62 @@ +From 4ae8978cf92a96257cd8998a49e781be83571d64 Mon Sep 17 00:00:00 2001 +From: Michael Kerrisk +Date: Mon, 5 Jan 2009 07:19:16 -0500 +Subject: inotify: fix type errors in interfaces + +From: Michael Kerrisk + +commit 4ae8978cf92a96257cd8998a49e781be83571d64 upstream. + +The problems lie in the types used for some inotify interfaces, both at the kernel level and at the glibc level. This mail addresses the kernel problem. I will follow up with some suggestions for glibc changes. + +For the sys_inotify_rm_watch() interface, the type of the 'wd' argument is +currently 'u32', it should be '__s32' . That is Robert's suggestion, and +is consistent with the other declarations of watch descriptors in the +kernel source, in particular, the inotify_event structure in +include/linux/inotify.h: + +struct inotify_event { + __s32 wd; /* watch descriptor */ + __u32 mask; /* watch mask */ + __u32 cookie; /* cookie to synchronize two events */ + __u32 len; /* length (including nulls) of name */ + char name[0]; /* stub for possible name */ +}; + +The patch makes the changes needed for inotify_rm_watch(). + +Signed-off-by: Michael Kerrisk +Cc: Robert Love +Cc: Vegard Nossum +Cc: Ulrich Drepper +Signed-off-by: Andrew Morton +Signed-off-by: Al Viro +Signed-off-by: Greg Kroah-Hartman + +--- + fs/inotify_user.c | 2 +- + include/linux/syscalls.h | 2 +- + 2 files changed, 2 insertions(+), 2 deletions(-) + +--- a/fs/inotify_user.c ++++ b/fs/inotify_user.c +@@ -704,7 +704,7 @@ fput_and_out: + return ret; + } + +-asmlinkage long sys_inotify_rm_watch(int fd, u32 wd) ++asmlinkage long sys_inotify_rm_watch(int fd, __s32 wd) + { + struct file *filp; + struct inotify_device *dev; +--- a/include/linux/syscalls.h ++++ b/include/linux/syscalls.h +@@ -549,7 +549,7 @@ asmlinkage long sys_inotify_init(void); + asmlinkage long sys_inotify_init1(int flags); + asmlinkage long sys_inotify_add_watch(int fd, const char __user *path, + u32 mask); +-asmlinkage long sys_inotify_rm_watch(int fd, u32 wd); ++asmlinkage long sys_inotify_rm_watch(int fd, __s32 wd); + + asmlinkage long sys_spu_run(int fd, __u32 __user *unpc, + __u32 __user *ustatus); diff --git a/queue-2.6.28/series b/queue-2.6.28/series index 879fbc576b2..2b841af24e6 100644 --- a/queue-2.6.28/series +++ b/queue-2.6.28/series @@ -28,6 +28,7 @@ ioat-fix-self-test-for-multi-channel-case.patch usb-isp1760-use-a-specific-plx-bridge-instead-of-any-bdridge.patch usb-isp1760-fix-probe-in-pci-glue-code.patch usb-unusual_devs.h-additions-for-pentax-k10d.patch +inotify-fix-type-errors-in-interfaces.patch 0001--CVE-2009-0029-Move-compat-system-call-declarations.patch 0002--CVE-2009-0029-Convert-all-system-calls-to-return-a.patch 0003--CVE-2009-0029-Rename-old_readdir-to-sys_old_readdi.patch