[kernel] r12583 - in people/dannf/sid+CVE-2009-0029/debian: . patches/bugfix/all patches/features/all/openvz patches/features/all/vserver patches/features/all/xen patches/series
Dann Frazier
dannf at alioth.debian.org
Tue Jan 20 07:44:40 UTC 2009
Author: dannf
Date: Tue Jan 20 07:44:38 2009
New Revision: 12583
Log:
Fix sign-extend ABI issue w/ system calls on various 64-bit architectures
(CVE-2009-0029)
Added:
people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0001--CVE-2009-0029-Move-compat-system-call-declarations.patch
people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0002--CVE-2009-0029-Convert-all-system-calls-to-return-a.patch
people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0003--CVE-2009-0029-Rename-old_readdir-to-sys_old_readdi.patch
people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0004--CVE-2009-0029-Remove-__attribute__-weak-from-sy.patch
people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0004pre1-ia64-kill-sys32_pipe.patch
people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0005--CVE-2009-0029-Make-sys_pselect7-static.patch
people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0006--CVE-2009-0029-Make-sys_syslog-a-conditional-system.patch
people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0007--CVE-2009-0029-System-call-wrapper-infrastructure.patch
people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0008--CVE-2009-0029-powerpc-Enable-syscall-wrappers-for.patch
people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0009--CVE-2009-0029-s390-enable-system-call-wrappers.patch
people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0010--CVE-2009-0029-System-call-wrapper-special-cases.patch
people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0011--CVE-2009-0029-System-call-wrappers-part-01.patch
people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0012--CVE-2009-0029-System-call-wrappers-part-02.patch
people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0013--CVE-2009-0029-System-call-wrappers-part-03.patch
people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0014--CVE-2009-0029-System-call-wrappers-part-04.patch
people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0015--CVE-2009-0029-System-call-wrappers-part-05.patch
people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0016--CVE-2009-0029-System-call-wrappers-part-06.patch
people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0017--CVE-2009-0029-System-call-wrappers-part-07.patch
people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0018--CVE-2009-0029-System-call-wrappers-part-08.patch
people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0019--CVE-2009-0029-System-call-wrappers-part-09.patch
people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0020--CVE-2009-0029-System-call-wrappers-part-10.patch
people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0021--CVE-2009-0029-System-call-wrappers-part-11.patch
people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0022--CVE-2009-0029-System-call-wrappers-part-12.patch
people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0023--CVE-2009-0029-System-call-wrappers-part-13.patch
people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0024--CVE-2009-0029-System-call-wrappers-part-14.patch
people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0025--CVE-2009-0029-System-call-wrappers-part-15.patch
people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0026--CVE-2009-0029-System-call-wrappers-part-16.patch
people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0027--CVE-2009-0029-System-call-wrappers-part-17.patch
people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0028--CVE-2009-0029-System-call-wrappers-part-18.patch
people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0029--CVE-2009-0029-System-call-wrappers-part-19.patch
people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0030--CVE-2009-0029-System-call-wrappers-part-20.patch
people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0031--CVE-2009-0029-System-call-wrappers-part-21.patch
people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0032--CVE-2009-0029-System-call-wrappers-part-22.patch
people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0033--CVE-2009-0029-System-call-wrappers-part-23.patch
people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0034--CVE-2009-0029-System-call-wrappers-part-24.patch
people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0035--CVE-2009-0029-System-call-wrappers-part-25.patch
people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0036--CVE-2009-0029-System-call-wrappers-part-26.patch
people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0037--CVE-2009-0029-System-call-wrappers-part-27.patch
people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0038--CVE-2009-0029-System-call-wrappers-part-28.patch
people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0038pre1-missing-include.patch
people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0039--CVE-2009-0029-System-call-wrappers-part-29.patch
people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0040--CVE-2009-0029-System-call-wrappers-part-30.patch
people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0041--CVE-2009-0029-System-call-wrappers-part-31.patch
people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0042--CVE-2009-0029-System-call-wrappers-part-32.patch
people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0043--CVE-2009-0029-System-call-wrappers-part-33.patch
people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0044--CVE-2009-0029-s390-specific-system-call-wrappers.patch
Modified:
people/dannf/sid+CVE-2009-0029/debian/changelog
people/dannf/sid+CVE-2009-0029/debian/patches/features/all/openvz/openvz.patch
people/dannf/sid+CVE-2009-0029/debian/patches/features/all/vserver/vs2.3.0.35.patch
people/dannf/sid+CVE-2009-0029/debian/patches/features/all/xen/suse-20080808143035.patch
people/dannf/sid+CVE-2009-0029/debian/patches/series/14
Modified: people/dannf/sid+CVE-2009-0029/debian/changelog
==============================================================================
--- people/dannf/sid+CVE-2009-0029/debian/changelog (original)
+++ people/dannf/sid+CVE-2009-0029/debian/changelog Tue Jan 20 07:44:38 2009
@@ -5,8 +5,10 @@
[ dann frazier ]
* sctp: fix memory overflow (CVE-2009-0065)
+ * Fix sign-extend ABI issue w/ system calls on various 64-bit architectures
+ (CVE-2009-0029)
- -- dann frazier <dannf at debian.org> Sat, 10 Jan 2009 16:06:04 -0700
+ -- dann frazier <dannf at debian.org> Mon, 19 Jan 2009 13:11:06 -0700
linux-2.6 (2.6.26-13) unstable; urgency=high
Added: people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0001--CVE-2009-0029-Move-compat-system-call-declarations.patch
==============================================================================
--- (empty file)
+++ people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0001--CVE-2009-0029-Move-compat-system-call-declarations.patch Tue Jan 20 07:44:38 2009
@@ -0,0 +1,71 @@
+From 4c696ba7982501d43dea11dbbaabd2aa8a19cc42 Mon Sep 17 00:00:00 2001
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+Date: Wed, 14 Jan 2009 14:13:53 +0100
+Subject: [PATCH 01/44] [CVE-2009-0029] Move compat system call declarations to compat header file
+
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+
+commit 4c696ba7982501d43dea11dbbaabd2aa8a19cc42 upstream.
+
+Move declarations to correct header file.
+
+Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+---
+ include/linux/compat.h | 13 +++++++++++++
+ include/linux/syscalls.h | 12 ------------
+ 2 files changed, 13 insertions(+), 12 deletions(-)
+
+Adjusted to apply to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+
+diff -urpN linux-source-2.6.26.orig/include/linux/compat.h linux-source-2.6.26/include/linux/compat.h
+--- linux-source-2.6.26.orig/include/linux/compat.h 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/include/linux/compat.h 2009-01-19 11:09:53.000000000 -0700
+@@ -278,5 +278,18 @@ asmlinkage long compat_sys_timerfd_setti
+ asmlinkage long compat_sys_timerfd_gettime(int ufd,
+ struct compat_itimerspec __user *otmr);
+
++asmlinkage long compat_sys_move_pages(pid_t pid, unsigned long nr_page,
++ __u32 __user *pages,
++ const int __user *nodes,
++ int __user *status,
++ int flags);
++asmlinkage long compat_sys_futimesat(unsigned int dfd, char __user *filename,
++ struct compat_timeval __user *t);
++asmlinkage long compat_sys_newfstatat(unsigned int dfd, char __user * filename,
++ struct compat_stat __user *statbuf,
++ int flag);
++asmlinkage long compat_sys_openat(unsigned int dfd, const char __user *filename,
++ int flags, int mode);
++
+ #endif /* CONFIG_COMPAT */
+ #endif /* _LINUX_COMPAT_H */
+diff -urpN linux-source-2.6.26.orig/include/linux/syscalls.h linux-source-2.6.26/include/linux/syscalls.h
+--- linux-source-2.6.26.orig/include/linux/syscalls.h 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/include/linux/syscalls.h 2009-01-19 11:09:54.000000000 -0700
+@@ -527,11 +527,6 @@ asmlinkage long sys_move_pages(pid_t pid
+ const int __user *nodes,
+ int __user *status,
+ int flags);
+-asmlinkage long compat_sys_move_pages(pid_t pid, unsigned long nr_page,
+- __u32 __user *pages,
+- const int __user *nodes,
+- int __user *status,
+- int flags);
+ asmlinkage long sys_mbind(unsigned long start, unsigned long len,
+ unsigned long mode,
+ unsigned long __user *nmask,
+@@ -579,13 +574,6 @@ asmlinkage long sys_readlinkat(int dfd,
+ int bufsiz);
+ asmlinkage long sys_utimensat(int dfd, char __user *filename,
+ struct timespec __user *utimes, int flags);
+-asmlinkage long compat_sys_futimesat(unsigned int dfd, char __user *filename,
+- struct compat_timeval __user *t);
+-asmlinkage long compat_sys_newfstatat(unsigned int dfd, char __user * filename,
+- struct compat_stat __user *statbuf,
+- int flag);
+-asmlinkage long compat_sys_openat(unsigned int dfd, const char __user *filename,
+- int flags, int mode);
+ asmlinkage long sys_unshare(unsigned long unshare_flags);
+
+ asmlinkage long sys_splice(int fd_in, loff_t __user *off_in,
Added: people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0002--CVE-2009-0029-Convert-all-system-calls-to-return-a.patch
==============================================================================
--- (empty file)
+++ people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0002--CVE-2009-0029-Convert-all-system-calls-to-return-a.patch Tue Jan 20 07:44:38 2009
@@ -0,0 +1,402 @@
+From 2ed7c03ec17779afb4fcfa3b8c61df61bd4879ba Mon Sep 17 00:00:00 2001
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+Date: Wed, 14 Jan 2009 14:13:54 +0100
+Subject: [PATCH 02/44] [CVE-2009-0029] Convert all system calls to return a long
+
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+
+commit 2ed7c03ec17779afb4fcfa3b8c61df61bd4879ba upstream.
+
+Convert all system calls to return a long. This should be a NOP since all
+converted types should have the same size anyway.
+With the exception of sys_exit_group which returned void. But that doesn't
+matter since the system call doesn't return.
+
+Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+
+Adjusted to apply to Debian's 2.6.26 by dann frazier <dannf at debian.org)
+
+diff -urpN linux-source-2.6.26.orig/fs/read_write.c linux-source-2.6.26/fs/read_write.c
+--- linux-source-2.6.26.orig/fs/read_write.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/fs/read_write.c 2009-01-19 11:12:44.000000000 -0700
+@@ -128,7 +128,7 @@ loff_t vfs_llseek(struct file *file, lof
+ }
+ EXPORT_SYMBOL(vfs_llseek);
+
+-asmlinkage off_t sys_lseek(unsigned int fd, off_t offset, unsigned int origin)
++asmlinkage long sys_lseek(unsigned int fd, off_t offset, unsigned int origin)
+ {
+ off_t retval;
+ struct file * file;
+@@ -350,7 +350,7 @@ static inline void file_pos_write(struct
+ file->f_pos = pos;
+ }
+
+-asmlinkage ssize_t sys_read(unsigned int fd, char __user * buf, size_t count)
++asmlinkage long sys_read(unsigned int fd, char __user * buf, size_t count)
+ {
+ struct file *file;
+ ssize_t ret = -EBADF;
+@@ -367,7 +367,7 @@ asmlinkage ssize_t sys_read(unsigned int
+ return ret;
+ }
+
+-asmlinkage ssize_t sys_write(unsigned int fd, const char __user * buf, size_t count)
++asmlinkage long sys_write(unsigned int fd, const char __user * buf, size_t count)
+ {
+ struct file *file;
+ ssize_t ret = -EBADF;
+@@ -384,7 +384,7 @@ asmlinkage ssize_t sys_write(unsigned in
+ return ret;
+ }
+
+-asmlinkage ssize_t sys_pread64(unsigned int fd, char __user *buf,
++asmlinkage long sys_pread64(unsigned int fd, char __user *buf,
+ size_t count, loff_t pos)
+ {
+ struct file *file;
+@@ -405,7 +405,7 @@ asmlinkage ssize_t sys_pread64(unsigned
+ return ret;
+ }
+
+-asmlinkage ssize_t sys_pwrite64(unsigned int fd, const char __user *buf,
++asmlinkage long sys_pwrite64(unsigned int fd, const char __user *buf,
+ size_t count, loff_t pos)
+ {
+ struct file *file;
+@@ -653,7 +653,7 @@ ssize_t vfs_writev(struct file *file, co
+
+ EXPORT_SYMBOL(vfs_writev);
+
+-asmlinkage ssize_t
++asmlinkage long
+ sys_readv(unsigned long fd, const struct iovec __user *vec, unsigned long vlen)
+ {
+ struct file *file;
+@@ -674,7 +674,7 @@ sys_readv(unsigned long fd, const struct
+ return ret;
+ }
+
+-asmlinkage ssize_t
++asmlinkage long
+ sys_writev(unsigned long fd, const struct iovec __user *vec, unsigned long vlen)
+ {
+ struct file *file;
+@@ -793,7 +793,7 @@ out:
+ return retval;
+ }
+
+-asmlinkage ssize_t sys_sendfile(int out_fd, int in_fd, off_t __user *offset, size_t count)
++asmlinkage long sys_sendfile(int out_fd, int in_fd, off_t __user *offset, size_t count)
+ {
+ loff_t pos;
+ off_t off;
+@@ -812,7 +812,7 @@ asmlinkage ssize_t sys_sendfile(int out_
+ return do_sendfile(out_fd, in_fd, NULL, count, 0);
+ }
+
+-asmlinkage ssize_t sys_sendfile64(int out_fd, int in_fd, loff_t __user *offset, size_t count)
++asmlinkage long sys_sendfile64(int out_fd, int in_fd, loff_t __user *offset, size_t count)
+ {
+ loff_t pos;
+ ssize_t ret;
+diff -urpN linux-source-2.6.26.orig/fs/xattr.c linux-source-2.6.26/fs/xattr.c
+--- linux-source-2.6.26.orig/fs/xattr.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/fs/xattr.c 2009-01-19 11:14:17.000000000 -0700
+@@ -349,7 +349,7 @@ getxattr(struct dentry *d, const char __
+ return error;
+ }
+
+-asmlinkage ssize_t
++asmlinkage long
+ sys_getxattr(const char __user *path, const char __user *name,
+ void __user *value, size_t size)
+ {
+@@ -364,7 +364,7 @@ sys_getxattr(const char __user *path, co
+ return error;
+ }
+
+-asmlinkage ssize_t
++asmlinkage long
+ sys_lgetxattr(const char __user *path, const char __user *name, void __user *value,
+ size_t size)
+ {
+@@ -379,7 +379,7 @@ sys_lgetxattr(const char __user *path, c
+ return error;
+ }
+
+-asmlinkage ssize_t
++asmlinkage long
+ sys_fgetxattr(int fd, const char __user *name, void __user *value, size_t size)
+ {
+ struct file *f;
+@@ -424,7 +424,7 @@ listxattr(struct dentry *d, char __user
+ return error;
+ }
+
+-asmlinkage ssize_t
++asmlinkage long
+ sys_listxattr(const char __user *path, char __user *list, size_t size)
+ {
+ struct nameidata nd;
+@@ -438,7 +438,7 @@ sys_listxattr(const char __user *path, c
+ return error;
+ }
+
+-asmlinkage ssize_t
++asmlinkage long
+ sys_llistxattr(const char __user *path, char __user *list, size_t size)
+ {
+ struct nameidata nd;
+@@ -452,7 +452,7 @@ sys_llistxattr(const char __user *path,
+ return error;
+ }
+
+-asmlinkage ssize_t
++asmlinkage long
+ sys_flistxattr(int fd, char __user *list, size_t size)
+ {
+ struct file *f;
+diff -urpN linux-source-2.6.26.orig/include/linux/syscalls.h linux-source-2.6.26/include/linux/syscalls.h
+--- linux-source-2.6.26.orig/include/linux/syscalls.h 2009-01-19 11:09:54.000000000 -0700
++++ linux-source-2.6.26/include/linux/syscalls.h 2009-01-19 11:12:44.000000000 -0700
+@@ -77,7 +77,7 @@ asmlinkage long sys_times(struct tms __u
+
+ asmlinkage long sys_gettid(void);
+ asmlinkage long sys_nanosleep(struct timespec __user *rqtp, struct timespec __user *rmtp);
+-asmlinkage unsigned long sys_alarm(unsigned int seconds);
++asmlinkage long sys_alarm(unsigned int seconds);
+ asmlinkage long sys_getpid(void);
+ asmlinkage long sys_getppid(void);
+ asmlinkage long sys_getuid(void);
+@@ -166,7 +166,7 @@ asmlinkage long sys_kexec_load(unsigned
+ unsigned long flags);
+
+ asmlinkage long sys_exit(int error_code);
+-asmlinkage void sys_exit_group(int error_code);
++asmlinkage long sys_exit_group(int error_code);
+ asmlinkage long sys_wait4(pid_t pid, int __user *stat_addr,
+ int options, struct rusage __user *ru);
+ asmlinkage long sys_waitid(int which, pid_t pid,
+@@ -196,7 +196,7 @@ asmlinkage long sys_tkill(int pid, int s
+ asmlinkage long sys_rt_sigqueueinfo(int pid, int sig, siginfo_t __user *uinfo);
+ asmlinkage long sys_sgetmask(void);
+ asmlinkage long sys_ssetmask(int newmask);
+-asmlinkage unsigned long sys_signal(int sig, __sighandler_t handler);
++asmlinkage long sys_signal(int sig, __sighandler_t handler);
+ asmlinkage long sys_pause(void);
+
+ asmlinkage long sys_sync(void);
+@@ -246,29 +246,29 @@ asmlinkage long sys_lsetxattr(const char
+ const void __user *value, size_t size, int flags);
+ asmlinkage long sys_fsetxattr(int fd, const char __user *name,
+ const void __user *value, size_t size, int flags);
+-asmlinkage ssize_t sys_getxattr(const char __user *path, const char __user *name,
+- void __user *value, size_t size);
+-asmlinkage ssize_t sys_lgetxattr(const char __user *path, const char __user *name,
+- void __user *value, size_t size);
+-asmlinkage ssize_t sys_fgetxattr(int fd, const char __user *name,
+- void __user *value, size_t size);
+-asmlinkage ssize_t sys_listxattr(const char __user *path, char __user *list,
+- size_t size);
+-asmlinkage ssize_t sys_llistxattr(const char __user *path, char __user *list,
+- size_t size);
+-asmlinkage ssize_t sys_flistxattr(int fd, char __user *list, size_t size);
++asmlinkage long sys_getxattr(const char __user *path, const char __user *name,
++ void __user *value, size_t size);
++asmlinkage long sys_lgetxattr(const char __user *path, const char __user *name,
++ void __user *value, size_t size);
++asmlinkage long sys_fgetxattr(int fd, const char __user *name,
++ void __user *value, size_t size);
++asmlinkage long sys_listxattr(const char __user *path, char __user *list,
++ size_t size);
++asmlinkage long sys_llistxattr(const char __user *path, char __user *list,
++ size_t size);
++asmlinkage long sys_flistxattr(int fd, char __user *list, size_t size);
+ asmlinkage long sys_removexattr(const char __user *path,
+ const char __user *name);
+ asmlinkage long sys_lremovexattr(const char __user *path,
+ const char __user *name);
+ asmlinkage long sys_fremovexattr(int fd, const char __user *name);
+
+-asmlinkage unsigned long sys_brk(unsigned long brk);
++asmlinkage long sys_brk(unsigned long brk);
+ asmlinkage long sys_mprotect(unsigned long start, size_t len,
+ unsigned long prot);
+-asmlinkage unsigned long sys_mremap(unsigned long addr,
+- unsigned long old_len, unsigned long new_len,
+- unsigned long flags, unsigned long new_addr);
++asmlinkage long sys_mremap(unsigned long addr,
++ unsigned long old_len, unsigned long new_len,
++ unsigned long flags, unsigned long new_addr);
+ asmlinkage long sys_remap_file_pages(unsigned long start, unsigned long size,
+ unsigned long prot, unsigned long pgoff,
+ unsigned long flags);
+@@ -320,10 +320,10 @@ asmlinkage long sys_io_submit(aio_contex
+ struct iocb __user * __user *);
+ asmlinkage long sys_io_cancel(aio_context_t ctx_id, struct iocb __user *iocb,
+ struct io_event __user *result);
+-asmlinkage ssize_t sys_sendfile(int out_fd, int in_fd,
+- off_t __user *offset, size_t count);
+-asmlinkage ssize_t sys_sendfile64(int out_fd, int in_fd,
+- loff_t __user *offset, size_t count);
++asmlinkage long sys_sendfile(int out_fd, int in_fd,
++ off_t __user *offset, size_t count);
++asmlinkage long sys_sendfile64(int out_fd, int in_fd,
++ loff_t __user *offset, size_t count);
+ asmlinkage long sys_readlink(const char __user *path,
+ char __user *buf, int bufsiz);
+ asmlinkage long sys_creat(const char __user *pathname, int mode);
+@@ -367,26 +367,25 @@ asmlinkage long sys_utime(char __user *f
+ struct utimbuf __user *times);
+ asmlinkage long sys_utimes(char __user *filename,
+ struct timeval __user *utimes);
+-asmlinkage off_t sys_lseek(unsigned int fd, off_t offset,
+- unsigned int origin);
++asmlinkage long sys_lseek(unsigned int fd, off_t offset,
++ unsigned int origin);
+ asmlinkage long sys_llseek(unsigned int fd, unsigned long offset_high,
+ unsigned long offset_low, loff_t __user *result,
+ unsigned int origin);
+-asmlinkage ssize_t sys_read(unsigned int fd, char __user *buf,
+- size_t count);
+-asmlinkage ssize_t sys_readahead(int fd, loff_t offset, size_t count);
+-asmlinkage ssize_t sys_readv(unsigned long fd,
+- const struct iovec __user *vec,
+- unsigned long vlen);
+-asmlinkage ssize_t sys_write(unsigned int fd, const char __user *buf,
+- size_t count);
+-asmlinkage ssize_t sys_writev(unsigned long fd,
+- const struct iovec __user *vec,
+- unsigned long vlen);
+-asmlinkage ssize_t sys_pread64(unsigned int fd, char __user *buf,
+- size_t count, loff_t pos);
+-asmlinkage ssize_t sys_pwrite64(unsigned int fd, const char __user *buf,
+- size_t count, loff_t pos);
++asmlinkage long sys_read(unsigned int fd, char __user *buf, size_t count);
++asmlinkage long sys_readahead(int fd, loff_t offset, size_t count);
++asmlinkage long sys_readv(unsigned long fd,
++ const struct iovec __user *vec,
++ unsigned long vlen);
++asmlinkage long sys_write(unsigned int fd, const char __user *buf,
++ size_t count);
++asmlinkage long sys_writev(unsigned long fd,
++ const struct iovec __user *vec,
++ unsigned long vlen);
++asmlinkage long sys_pread64(unsigned int fd, char __user *buf,
++ size_t count, loff_t pos);
++asmlinkage long sys_pwrite64(unsigned int fd, const char __user *buf,
++ size_t count, loff_t pos);
+ asmlinkage long sys_getcwd(char __user *buf, unsigned long size);
+ asmlinkage long sys_mkdir(const char __user *pathname, int mode);
+ asmlinkage long sys_chdir(const char __user *filename);
+@@ -473,7 +472,7 @@ asmlinkage long sys_shmctl(int shmid, in
+ asmlinkage long sys_mq_open(const char __user *name, int oflag, mode_t mode, struct mq_attr __user *attr);
+ asmlinkage long sys_mq_unlink(const char __user *name);
+ asmlinkage long sys_mq_timedsend(mqd_t mqdes, const char __user *msg_ptr, size_t msg_len, unsigned int msg_prio, const struct timespec __user *abs_timeout);
+-asmlinkage ssize_t sys_mq_timedreceive(mqd_t mqdes, char __user *msg_ptr, size_t msg_len, unsigned int __user *msg_prio, const struct timespec __user *abs_timeout);
++asmlinkage long sys_mq_timedreceive(mqd_t mqdes, char __user *msg_ptr, size_t msg_len, unsigned int __user *msg_prio, const struct timespec __user *abs_timeout);
+ asmlinkage long sys_mq_notify(mqd_t mqdes, const struct sigevent __user *notification);
+ asmlinkage long sys_mq_getsetattr(mqd_t mqdes, const struct mq_attr __user *mqstat, struct mq_attr __user *omqstat);
+
+diff -urpN linux-source-2.6.26.orig/ipc/mqueue.c linux-source-2.6.26/ipc/mqueue.c
+--- linux-source-2.6.26.orig/ipc/mqueue.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/ipc/mqueue.c 2009-01-19 11:12:44.000000000 -0700
+@@ -907,7 +907,7 @@ out:
+ return ret;
+ }
+
+-asmlinkage ssize_t sys_mq_timedreceive(mqd_t mqdes, char __user *u_msg_ptr,
++asmlinkage long sys_mq_timedreceive(mqd_t mqdes, char __user *u_msg_ptr,
+ size_t msg_len, unsigned int __user *u_msg_prio,
+ const struct timespec __user *u_abs_timeout)
+ {
+diff -urpN linux-source-2.6.26.orig/kernel/exit.c linux-source-2.6.26/kernel/exit.c
+--- linux-source-2.6.26.orig/kernel/exit.c 2009-01-10 05:42:12.000000000 -0700
++++ linux-source-2.6.26/kernel/exit.c 2009-01-19 11:12:44.000000000 -0700
+@@ -1162,9 +1162,11 @@ do_group_exit(int exit_code)
+ * wait4()-ing process will get the correct exit code - even if this
+ * thread is not the thread group leader.
+ */
+-asmlinkage void sys_exit_group(int error_code)
++asmlinkage long sys_exit_group(int error_code)
+ {
+ do_group_exit((error_code & 0xff) << 8);
++ /* NOTREACHED */
++ return 0;
+ }
+
+ static struct pid *task_pid_type(struct task_struct *task, enum pid_type type)
+diff -urpN linux-source-2.6.26.orig/kernel/signal.c linux-source-2.6.26/kernel/signal.c
+--- linux-source-2.6.26.orig/kernel/signal.c 2009-01-10 05:42:11.000000000 -0700
++++ linux-source-2.6.26/kernel/signal.c 2009-01-19 11:12:44.000000000 -0700
+@@ -2532,7 +2532,7 @@ sys_ssetmask(int newmask)
+ /*
+ * For backwards compatibility. Functionality superseded by sigaction.
+ */
+-asmlinkage unsigned long
++asmlinkage long
+ sys_signal(int sig, __sighandler_t handler)
+ {
+ struct k_sigaction new_sa, old_sa;
+diff -urpN linux-source-2.6.26.orig/kernel/timer.c linux-source-2.6.26/kernel/timer.c
+--- linux-source-2.6.26.orig/kernel/timer.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/kernel/timer.c 2009-01-19 11:12:44.000000000 -0700
+@@ -1082,7 +1082,7 @@ void do_timer(unsigned long ticks)
+ * For backwards compatibility? This can be done in libc so Alpha
+ * and all newer ports shouldn't need it.
+ */
+-asmlinkage unsigned long sys_alarm(unsigned int seconds)
++asmlinkage long sys_alarm(unsigned int seconds)
+ {
+ return alarm_setitimer(seconds);
+ }
+diff -urpN linux-source-2.6.26.orig/mm/filemap.c linux-source-2.6.26/mm/filemap.c
+--- linux-source-2.6.26.orig/mm/filemap.c 2009-01-10 05:42:11.000000000 -0700
++++ linux-source-2.6.26/mm/filemap.c 2009-01-19 11:12:44.000000000 -0700
+@@ -1253,7 +1253,7 @@ do_readahead(struct address_space *mappi
+ return 0;
+ }
+
+-asmlinkage ssize_t sys_readahead(int fd, loff_t offset, size_t count)
++asmlinkage long sys_readahead(int fd, loff_t offset, size_t count)
+ {
+ ssize_t ret;
+ struct file *file;
+diff -urpN linux-source-2.6.26.orig/mm/mmap.c linux-source-2.6.26/mm/mmap.c
+--- linux-source-2.6.26.orig/mm/mmap.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/mm/mmap.c 2009-01-19 11:12:44.000000000 -0700
+@@ -240,7 +240,7 @@ static struct vm_area_struct *remove_vma
+ return next;
+ }
+
+-asmlinkage unsigned long sys_brk(unsigned long brk)
++asmlinkage long sys_brk(unsigned long brk)
+ {
+ unsigned long rlim, retval;
+ unsigned long newbrk, oldbrk;
+diff -urpN linux-source-2.6.26.orig/mm/mremap.c linux-source-2.6.26/mm/mremap.c
+--- linux-source-2.6.26.orig/mm/mremap.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/mm/mremap.c 2009-01-19 11:12:44.000000000 -0700
+@@ -412,7 +412,7 @@ out_nc:
+ return ret;
+ }
+
+-asmlinkage unsigned long sys_mremap(unsigned long addr,
++asmlinkage long sys_mremap(unsigned long addr,
+ unsigned long old_len, unsigned long new_len,
+ unsigned long flags, unsigned long new_addr)
+ {
+diff -urpN linux-source-2.6.26.orig/mm/nommu.c linux-source-2.6.26/mm/nommu.c
+--- linux-source-2.6.26.orig/mm/nommu.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/mm/nommu.c 2009-01-19 11:12:44.000000000 -0700
+@@ -334,7 +334,7 @@ EXPORT_SYMBOL(vm_insert_page);
+ * to a regular file. in this case, the unmapping will need
+ * to invoke file system routines that need the global lock.
+ */
+-asmlinkage unsigned long sys_brk(unsigned long brk)
++asmlinkage long sys_brk(unsigned long brk)
+ {
+ struct mm_struct *mm = current->mm;
+
Added: people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0003--CVE-2009-0029-Rename-old_readdir-to-sys_old_readdi.patch
==============================================================================
--- (empty file)
+++ people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0003--CVE-2009-0029-Rename-old_readdir-to-sys_old_readdi.patch Tue Jan 20 07:44:38 2009
@@ -0,0 +1,203 @@
+From e55380edf68796d75bf41391a781c68ee678587d Mon Sep 17 00:00:00 2001
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+Date: Wed, 14 Jan 2009 14:13:55 +0100
+Subject: [PATCH 03/44] [CVE-2009-0029] Rename old_readdir to sys_old_readdir
+
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+
+commit e55380edf68796d75bf41391a781c68ee678587d upstream.
+
+This way it matches the generic system call name convention.
+
+Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+
+Backported to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+
+diff -urpN linux-source-2.6.26.orig/arch/arm/kernel/calls.S linux-source-2.6.26/arch/arm/kernel/calls.S
+--- linux-source-2.6.26.orig/arch/arm/kernel/calls.S 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/arch/arm/kernel/calls.S 2009-01-19 11:16:52.000000000 -0700
+@@ -98,7 +98,7 @@
+ CALL(sys_uselib)
+ CALL(sys_swapon)
+ CALL(sys_reboot)
+- CALL(OBSOLETE(old_readdir)) /* used by libc4 */
++ CALL(OBSOLETE(sys_old_readdir)) /* used by libc4 */
+ /* 90 */ CALL(OBSOLETE(old_mmap)) /* used by libc4 */
+ CALL(sys_munmap)
+ CALL(sys_truncate)
+diff -urpN linux-source-2.6.26.orig/arch/cris/arch-v10/kernel/entry.S linux-source-2.6.26/arch/cris/arch-v10/kernel/entry.S
+--- linux-source-2.6.26.orig/arch/cris/arch-v10/kernel/entry.S 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/arch/cris/arch-v10/kernel/entry.S 2009-01-19 11:16:52.000000000 -0700
+@@ -691,7 +691,7 @@ sys_call_table:
+ .long sys_uselib
+ .long sys_swapon
+ .long sys_reboot
+- .long old_readdir
++ .long sys_old_readdir
+ .long old_mmap /* 90 */
+ .long sys_munmap
+ .long sys_truncate
+diff -urpN linux-source-2.6.26.orig/arch/cris/arch-v32/kernel/entry.S linux-source-2.6.26/arch/cris/arch-v32/kernel/entry.S
+--- linux-source-2.6.26.orig/arch/cris/arch-v32/kernel/entry.S 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/arch/cris/arch-v32/kernel/entry.S 2009-01-19 11:16:52.000000000 -0700
+@@ -614,7 +614,7 @@ sys_call_table:
+ .long sys_uselib
+ .long sys_swapon
+ .long sys_reboot
+- .long old_readdir
++ .long sys_old_readdir
+ .long old_mmap /* 90 */
+ .long sys_munmap
+ .long sys_truncate
+diff -urpN linux-source-2.6.26.orig/arch/h8300/kernel/syscalls.S linux-source-2.6.26/arch/h8300/kernel/syscalls.S
+--- linux-source-2.6.26.orig/arch/h8300/kernel/syscalls.S 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/arch/h8300/kernel/syscalls.S 2009-01-19 11:16:52.000000000 -0700
+@@ -103,7 +103,7 @@ SYMBOL_NAME_LABEL(sys_call_table)
+ .long SYMBOL_NAME(sys_uselib)
+ .long SYMBOL_NAME(sys_swapon)
+ .long SYMBOL_NAME(sys_reboot)
+- .long SYMBOL_NAME(old_readdir)
++ .long SYMBOL_NAME(sys_old_readdir)
+ .long SYMBOL_NAME(old_mmap) /* 90 */
+ .long SYMBOL_NAME(sys_munmap)
+ .long SYMBOL_NAME(sys_truncate)
+diff -urpN linux-source-2.6.26.orig/arch/m68k/kernel/entry.S linux-source-2.6.26/arch/m68k/kernel/entry.S
+--- linux-source-2.6.26.orig/arch/m68k/kernel/entry.S 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/arch/m68k/kernel/entry.S 2009-01-19 11:16:52.000000000 -0700
+@@ -513,7 +513,7 @@ sys_call_table:
+ .long sys_uselib
+ .long sys_swapon
+ .long sys_reboot
+- .long old_readdir
++ .long sys_old_readdir
+ .long old_mmap /* 90 */
+ .long sys_munmap
+ .long sys_truncate
+diff -urpN linux-source-2.6.26.orig/arch/m68knommu/kernel/syscalltable.S linux-source-2.6.26/arch/m68knommu/kernel/syscalltable.S
+--- linux-source-2.6.26.orig/arch/m68knommu/kernel/syscalltable.S 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/arch/m68knommu/kernel/syscalltable.S 2009-01-19 11:16:52.000000000 -0700
+@@ -107,7 +107,7 @@ ENTRY(sys_call_table)
+ .long sys_uselib
+ .long sys_ni_syscall /* sys_swapon */
+ .long sys_reboot
+- .long old_readdir
++ .long sys_old_readdir
+ .long old_mmap /* 90 */
+ .long sys_munmap
+ .long sys_truncate
+diff -urpN linux-source-2.6.26.orig/arch/mips/kernel/scall32-o32.S linux-source-2.6.26/arch/mips/kernel/scall32-o32.S
+--- linux-source-2.6.26.orig/arch/mips/kernel/scall32-o32.S 2009-01-10 05:42:16.000000000 -0700
++++ linux-source-2.6.26/arch/mips/kernel/scall32-o32.S 2009-01-19 11:16:52.000000000 -0700
+@@ -413,7 +413,7 @@ einval: li v0, -EINVAL
+ sys sys_uselib 1
+ sys sys_swapon 2
+ sys sys_reboot 3
+- sys old_readdir 3
++ sys sys_old_readdir 3
+ sys old_mmap 6 /* 4090 */
+ sys sys_munmap 2
+ sys sys_truncate 2
+diff -urpN linux-source-2.6.26.orig/arch/mn10300/kernel/entry.S linux-source-2.6.26/arch/mn10300/kernel/entry.S
+--- linux-source-2.6.26.orig/arch/mn10300/kernel/entry.S 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/arch/mn10300/kernel/entry.S 2009-01-19 11:16:52.000000000 -0700
+@@ -477,7 +477,7 @@ ENTRY(sys_call_table)
+ .long sys_uselib
+ .long sys_swapon
+ .long sys_reboot
+- .long old_readdir
++ .long sys_old_readdir
+ .long old_mmap /* 90 */
+ .long sys_munmap
+ .long sys_truncate
+diff -urpN linux-source-2.6.26.orig/arch/sh/kernel/syscalls_32.S linux-source-2.6.26/arch/sh/kernel/syscalls_32.S
+--- linux-source-2.6.26.orig/arch/sh/kernel/syscalls_32.S 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/arch/sh/kernel/syscalls_32.S 2009-01-19 11:17:08.000000000 -0700
+@@ -105,7 +105,7 @@ ENTRY(sys_call_table)
+ .long sys_uselib
+ .long sys_swapon
+ .long sys_reboot
+- .long old_readdir
++ .long sys_old_readdir
+ .long old_mmap /* 90 */
+ .long sys_munmap
+ .long sys_truncate
+diff -urpN linux-source-2.6.26.orig/arch/sh/kernel/syscalls_64.S linux-source-2.6.26/arch/sh/kernel/syscalls_64.S
+--- linux-source-2.6.26.orig/arch/sh/kernel/syscalls_64.S 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/arch/sh/kernel/syscalls_64.S 2009-01-19 11:17:08.000000000 -0700
+@@ -109,7 +109,7 @@ sys_call_table:
+ .long sys_uselib
+ .long sys_swapon
+ .long sys_reboot
+- .long old_readdir
++ .long sys_old_readdir
+ .long old_mmap /* 90 */
+ .long sys_munmap
+ .long sys_truncate
+diff -urpN linux-source-2.6.26.orig/arch/sparc/kernel/systbls.S linux-source-2.6.26/arch/sparc/kernel/systbls.S
+--- linux-source-2.6.26.orig/arch/sparc/kernel/systbls.S 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/arch/sparc/kernel/systbls.S 2009-01-19 11:17:08.000000000 -0700
+@@ -56,7 +56,7 @@ sys_call_table:
+ /*185*/ .long sys_setpgid, sys_fremovexattr, sys_tkill, sys_exit_group, sys_newuname
+ /*190*/ .long sys_init_module, sys_personality, sparc_remap_file_pages, sys_epoll_create, sys_epoll_ctl
+ /*195*/ .long sys_epoll_wait, sys_ioprio_set, sys_getppid, sparc_sigaction, sys_sgetmask
+-/*200*/ .long sys_ssetmask, sys_sigsuspend, sys_newlstat, sys_uselib, old_readdir
++/*200*/ .long sys_ssetmask, sys_sigsuspend, sys_newlstat, sys_uselib, sys_old_readdir
+ /*205*/ .long sys_readahead, sys_socketcall, sys_syslog, sys_lookup_dcookie, sys_fadvise64
+ /*210*/ .long sys_fadvise64_64, sys_tgkill, sys_waitpid, sys_swapoff, sys_sysinfo
+ /*215*/ .long sys_ipc, sys_sigreturn, sys_clone, sys_ioprio_get, sys_adjtimex
+diff -urpN linux-source-2.6.26.orig/arch/x86/kernel/syscall_table_32.S linux-source-2.6.26/arch/x86/kernel/syscall_table_32.S
+--- linux-source-2.6.26.orig/arch/x86/kernel/syscall_table_32.S 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/arch/x86/kernel/syscall_table_32.S 2009-01-19 11:17:08.000000000 -0700
+@@ -88,7 +88,7 @@ ENTRY(sys_call_table)
+ .long sys_uselib
+ .long sys_swapon
+ .long sys_reboot
+- .long old_readdir
++ .long sys_old_readdir
+ .long old_mmap /* 90 */
+ .long sys_munmap
+ .long sys_truncate
+diff -urpN linux-source-2.6.26.orig/fs/readdir.c linux-source-2.6.26/fs/readdir.c
+--- linux-source-2.6.26.orig/fs/readdir.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/fs/readdir.c 2009-01-19 11:17:08.000000000 -0700
+@@ -100,7 +100,7 @@ efault:
+ return -EFAULT;
+ }
+
+-asmlinkage long old_readdir(unsigned int fd, struct old_linux_dirent __user * dirent, unsigned int count)
++asmlinkage long sys_old_readdir(unsigned int fd, struct old_linux_dirent __user * dirent, unsigned int count)
+ {
+ int error;
+ struct file * file;
+diff -urpN linux-source-2.6.26.orig/include/asm-powerpc/systbl.h linux-source-2.6.26/include/asm-powerpc/systbl.h
+--- linux-source-2.6.26.orig/include/asm-powerpc/systbl.h 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/include/asm-powerpc/systbl.h 2009-01-19 11:18:35.000000000 -0700
+@@ -92,7 +92,7 @@ COMPAT_SYS_SPU(readlink)
+ SYSCALL(uselib)
+ SYSCALL(swapon)
+ SYSCALL(reboot)
+-SYSX(sys_ni_syscall,old32_readdir,old_readdir)
++SYSX(sys_ni_syscall,old32_readdir,sys_old_readdir)
+ SYSCALL_SPU(mmap)
+ SYSCALL_SPU(munmap)
+ SYSCALL_SPU(truncate)
+diff -urpN linux-source-2.6.26.orig/include/linux/syscalls.h linux-source-2.6.26/include/linux/syscalls.h
+--- linux-source-2.6.26.orig/include/linux/syscalls.h 2009-01-19 11:12:44.000000000 -0700
++++ linux-source-2.6.26/include/linux/syscalls.h 2009-01-19 11:17:08.000000000 -0700
+@@ -54,6 +54,7 @@ struct compat_stat;
+ struct compat_timeval;
+ struct robust_list_head;
+ struct getcpu_cache;
++struct old_linux_dirent;
+
+ #include <linux/types.h>
+ #include <linux/aio_abi.h>
+@@ -602,6 +603,7 @@ asmlinkage long sys_timerfd_settime(int
+ asmlinkage long sys_timerfd_gettime(int ufd, struct itimerspec __user *otmr);
+ asmlinkage long sys_eventfd(unsigned int count);
+ asmlinkage long sys_fallocate(int fd, int mode, loff_t offset, loff_t len);
++asmlinkage long sys_old_readdir(unsigned int, struct old_linux_dirent __user *, unsigned int);
+
+ int kernel_execve(const char *filename, char *const argv[], char *const envp[]);
+
Added: people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0004--CVE-2009-0029-Remove-__attribute__-weak-from-sy.patch
==============================================================================
--- (empty file)
+++ people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0004--CVE-2009-0029-Remove-__attribute__-weak-from-sy.patch Tue Jan 20 07:44:38 2009
@@ -0,0 +1,214 @@
+From 1134723e96f6e2abcf8bfd7a2d1c96fcc323ef35 Mon Sep 17 00:00:00 2001
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+Date: Wed, 14 Jan 2009 14:13:56 +0100
+Subject: [PATCH 04/44] [CVE-2009-0029] Remove __attribute__((weak)) from sys_pipe/sys_pipe2
+
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+
+commit 1134723e96f6e2abcf8bfd7a2d1c96fcc323ef35 upstream.
+
+Remove __attribute__((weak)) from common code sys_pipe implemantation.
+IA64, ALPHA, SUPERH (32bit) and SPARC (32bit) have own implemantations
+with the same name. Just rename them.
+For sys_pipe2 there is no architecture specific implementation.
+
+Cc: Richard Henderson <rth at twiddle.net>
+Cc: David S. Miller <davem at davemloft.net>
+Cc: Paul Mundt <lethal at linux-sh.org>
+Cc: Tony Luck <tony.luck at intel.com>
+Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+
+Backported to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+
+diff -urpN linux-source-2.6.26.orig/arch/alpha/kernel/entry.S linux-source-2.6.26/arch/alpha/kernel/entry.S
+--- linux-source-2.6.26.orig/arch/alpha/kernel/entry.S 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/arch/alpha/kernel/entry.S 2009-01-19 11:38:17.000000000 -0700
+@@ -894,9 +894,9 @@ sys_getxpid:
+ .end sys_getxpid
+
+ .align 4
+- .globl sys_pipe
+- .ent sys_pipe
+-sys_pipe:
++ .globl sys_alpha_pipe
++ .ent sys_alpha_pipe
++sys_alpha_pipe:
+ lda $sp, -16($sp)
+ stq $26, 0($sp)
+ .prologue 0
+@@ -914,7 +914,7 @@ sys_pipe:
+ stq $1, 80+16($sp)
+ 1: lda $sp, 16($sp)
+ ret
+-.end sys_pipe
++.end sys_alpha_pipe
+
+ .align 4
+ .globl sys_execve
+diff -urpN linux-source-2.6.26.orig/arch/alpha/kernel/systbls.S linux-source-2.6.26/arch/alpha/kernel/systbls.S
+--- linux-source-2.6.26.orig/arch/alpha/kernel/systbls.S 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/arch/alpha/kernel/systbls.S 2009-01-19 11:38:17.000000000 -0700
+@@ -52,7 +52,7 @@ sys_call_table:
+ .quad sys_setpgid
+ .quad alpha_ni_syscall /* 40 */
+ .quad sys_dup
+- .quad sys_pipe
++ .quad sys_alpha_pipe
+ .quad osf_set_program_attributes
+ .quad alpha_ni_syscall
+ .quad sys_open /* 45 */
+diff -urpN linux-source-2.6.26.orig/arch/ia64/ia32/ia32_entry.S linux-source-2.6.26/arch/ia64/ia32/ia32_entry.S
+--- linux-source-2.6.26.orig/arch/ia64/ia32/ia32_entry.S 2009-01-19 11:33:32.000000000 -0700
++++ linux-source-2.6.26/arch/ia64/ia32/ia32_entry.S 2009-01-19 11:38:17.000000000 -0700
+@@ -215,7 +215,7 @@ ia32_syscall_table:
+ data8 sys_mkdir
+ data8 sys_rmdir /* 40 */
+ data8 sys_dup
+- data8 sys_pipe
++ data8 sys_ia64_pipe
+ data8 compat_sys_times
+ data8 sys_ni_syscall /* old prof syscall holder */
+ data8 sys32_brk /* 45 */
+diff -urpN linux-source-2.6.26.orig/arch/ia64/kernel/entry.S linux-source-2.6.26/arch/ia64/kernel/entry.S
+--- linux-source-2.6.26.orig/arch/ia64/kernel/entry.S 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/arch/ia64/kernel/entry.S 2009-01-19 11:38:32.000000000 -0700
+@@ -1408,7 +1408,7 @@ sys_call_table:
+ data8 sys_mkdir // 1055
+ data8 sys_rmdir
+ data8 sys_dup
+- data8 sys_pipe
++ data8 sys_ia64_pipe
+ data8 sys_times
+ data8 ia64_brk // 1060
+ data8 sys_setgid
+diff -urpN linux-source-2.6.26.orig/arch/ia64/kernel/sys_ia64.c linux-source-2.6.26/arch/ia64/kernel/sys_ia64.c
+--- linux-source-2.6.26.orig/arch/ia64/kernel/sys_ia64.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/arch/ia64/kernel/sys_ia64.c 2009-01-19 11:38:32.000000000 -0700
+@@ -154,7 +154,7 @@ out:
+ * and r9) as this is faster than doing a copy_to_user().
+ */
+ asmlinkage long
+-sys_pipe (void)
++sys_ia64_pipe (void)
+ {
+ struct pt_regs *regs = task_pt_regs(current);
+ int fd[2];
+diff -urpN linux-source-2.6.26.orig/arch/s390/kernel/entry.h linux-source-2.6.26/arch/s390/kernel/entry.h
+--- linux-source-2.6.26.orig/arch/s390/kernel/entry.h 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/arch/s390/kernel/entry.h 2009-01-19 11:38:32.000000000 -0700
+@@ -30,7 +30,6 @@ struct fadvise64_64_args;
+ struct old_sigaction;
+ struct sel_arg_struct;
+
+-long sys_pipe(unsigned long __user *fildes);
+ long sys_mmap2(struct mmap_arg_struct __user *arg);
+ long old_mmap(struct mmap_arg_struct __user *arg);
+ long sys_ipc(uint call, int first, unsigned long second,
+diff -urpN linux-source-2.6.26.orig/arch/sh/kernel/syscalls_32.S linux-source-2.6.26/arch/sh/kernel/syscalls_32.S
+--- linux-source-2.6.26.orig/arch/sh/kernel/syscalls_32.S 2009-01-19 11:17:08.000000000 -0700
++++ linux-source-2.6.26/arch/sh/kernel/syscalls_32.S 2009-01-19 11:38:35.000000000 -0700
+@@ -58,7 +58,7 @@ ENTRY(sys_call_table)
+ .long sys_mkdir
+ .long sys_rmdir /* 40 */
+ .long sys_dup
+- .long sys_pipe
++ .long sys_sh_pipe
+ .long sys_times
+ .long sys_ni_syscall /* old prof syscall holder */
+ .long sys_brk /* 45 */
+diff -urpN linux-source-2.6.26.orig/arch/sh/kernel/sys_sh32.c linux-source-2.6.26/arch/sh/kernel/sys_sh32.c
+--- linux-source-2.6.26.orig/arch/sh/kernel/sys_sh32.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/arch/sh/kernel/sys_sh32.c 2009-01-19 11:38:35.000000000 -0700
+@@ -21,7 +21,7 @@
+ * sys_pipe() is the normal C calling standard for creating
+ * a pipe. It's not the way Unix traditionally does this, though.
+ */
+-asmlinkage int sys_pipe(unsigned long r4, unsigned long r5,
++asmlinkage int sys_sh_pipe(unsigned long r4, unsigned long r5,
+ unsigned long r6, unsigned long r7,
+ struct pt_regs __regs)
+ {
+diff -urpN linux-source-2.6.26.orig/arch/sparc/kernel/entry.S linux-source-2.6.26/arch/sparc/kernel/entry.S
+--- linux-source-2.6.26.orig/arch/sparc/kernel/entry.S 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/arch/sparc/kernel/entry.S 2009-01-19 11:38:35.000000000 -0700
+@@ -1141,8 +1141,8 @@ sunos_execv:
+ ld [%sp + STACKFRAME_SZ + PT_I0], %o0
+
+ .align 4
+- .globl sys_pipe
+-sys_pipe:
++ .globl sys_sparc_pipe
++sys_sparc_pipe:
+ mov %o7, %l5
+ add %sp, STACKFRAME_SZ, %o0 ! pt_regs *regs arg
+ call sparc_pipe
+diff -urpN linux-source-2.6.26.orig/arch/sparc/kernel/systbls.S linux-source-2.6.26/arch/sparc/kernel/systbls.S
+--- linux-source-2.6.26.orig/arch/sparc/kernel/systbls.S 2009-01-19 11:17:08.000000000 -0700
++++ linux-source-2.6.26/arch/sparc/kernel/systbls.S 2009-01-19 11:38:35.000000000 -0700
+@@ -24,7 +24,7 @@ sys_call_table:
+ /*25*/ .long sys_vmsplice, sys_ptrace, sys_alarm, sys_sigaltstack, sys_pause
+ /*30*/ .long sys_utime, sys_lchown, sys_fchown, sys_access, sys_nice
+ /*35*/ .long sys_chown, sys_sync, sys_kill, sys_newstat, sys_sendfile
+-/*40*/ .long sys_newlstat, sys_dup, sys_pipe, sys_times, sys_getuid
++/*40*/ .long sys_newlstat, sys_dup, sys_sparc_pipe, sys_times, sys_getuid
+ /*45*/ .long sys_umount, sys_setgid16, sys_getgid16, sys_signal, sys_geteuid16
+ /*50*/ .long sys_getegid16, sys_acct, sys_nis_syscall, sys_getgid, sys_ioctl
+ /*55*/ .long sys_reboot, sys_mmap2, sys_symlink, sys_readlink, sys_execve
+diff -urpN linux-source-2.6.26.orig/arch/sparc64/kernel/syscalls.S linux-source-2.6.26/arch/sparc64/kernel/syscalls.S
+--- linux-source-2.6.26.orig/arch/sparc64/kernel/syscalls.S 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/arch/sparc64/kernel/syscalls.S 2009-01-19 11:38:35.000000000 -0700
+@@ -20,7 +20,7 @@ execve_merge:
+ add %sp, PTREGS_OFF, %o0
+
+ .align 32
+-sys_pipe:
++sys_sparc_pipe:
+ ba,pt %xcc, sparc_pipe
+ add %sp, PTREGS_OFF, %o0
+ sys_nis_syscall:
+diff -urpN linux-source-2.6.26.orig/arch/sparc64/kernel/systbls.S linux-source-2.6.26/arch/sparc64/kernel/systbls.S
+--- linux-source-2.6.26.orig/arch/sparc64/kernel/systbls.S 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/arch/sparc64/kernel/systbls.S 2009-01-19 11:40:10.000000000 -0700
+@@ -26,7 +26,7 @@ sys_call_table32:
+ /*25*/ .word sys32_vmsplice, compat_sys_ptrace, sys_alarm, sys32_sigaltstack, sys32_pause
+ /*30*/ .word compat_sys_utime, sys_lchown, sys_fchown, sys32_access, sys32_nice
+ .word sys_chown, sys_sync, sys32_kill, compat_sys_newstat, sys32_sendfile
+-/*40*/ .word compat_sys_newlstat, sys_dup, sys_pipe, compat_sys_times, sys_getuid
++/*40*/ .word compat_sys_newlstat, sys_dup, sys_sparc_pipe, compat_sys_times, sys_getuid
+ .word sys32_umount, sys32_setgid16, sys32_getgid16, sys32_signal, sys32_geteuid16
+ /*50*/ .word sys32_getegid16, sys_acct, sys_nis_syscall, sys_getgid, compat_sys_ioctl
+ .word sys32_reboot, sys32_mmap2, sys_symlink, sys32_readlink, sys32_execve
+@@ -99,7 +99,7 @@ sys_call_table:
+ /*25*/ .word sys_vmsplice, sys_ptrace, sys_alarm, sys_sigaltstack, sys_nis_syscall
+ /*30*/ .word sys_utime, sys_nis_syscall, sys_nis_syscall, sys_access, sys_nice
+ .word sys_nis_syscall, sys_sync, sys_kill, sys_newstat, sys_sendfile64
+-/*40*/ .word sys_newlstat, sys_dup, sys_pipe, sys_times, sys_nis_syscall
++/*40*/ .word sys_newlstat, sys_dup, sys_sparc_pipe, sys_times, sys_nis_syscall
+ .word sys_umount, sys_setgid, sys_getgid, sys_signal, sys_geteuid
+ /*50*/ .word sys_getegid, sys_acct, sys_memory_ordering, sys_nis_syscall, sys_ioctl
+ .word sys_reboot, sys_nis_syscall, sys_symlink, sys_readlink, sys_execve
+diff -urpN linux-source-2.6.26.orig/fs/pipe.c linux-source-2.6.26/fs/pipe.c
+--- linux-source-2.6.26.orig/fs/pipe.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/fs/pipe.c 2009-01-19 11:38:50.000000000 -0700
+@@ -1078,7 +1078,7 @@ int do_pipe(int *fd)
+ * sys_pipe() is the normal C calling standard for creating
+ * a pipe. It's not the way Unix traditionally does this, though.
+ */
+-asmlinkage long __weak sys_pipe(int __user *fildes)
++asmlinkage long sys_pipe(int __user *fildes)
+ {
+ int fd[2];
+ int error;
+diff -urpN linux-source-2.6.26.orig/include/asm-ia64/unistd.h linux-source-2.6.26/include/asm-ia64/unistd.h
+--- linux-source-2.6.26.orig/include/asm-ia64/unistd.h 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/include/asm-ia64/unistd.h 2009-01-19 11:38:32.000000000 -0700
+@@ -357,7 +357,7 @@ struct pt_regs;
+ struct sigaction;
+ long sys_execve(char __user *filename, char __user * __user *argv,
+ char __user * __user *envp, struct pt_regs *regs);
+-asmlinkage long sys_pipe(void);
++asmlinkage long sys_ia64_pipe(void);
+ asmlinkage long sys_rt_sigaction(int sig,
+ const struct sigaction __user *act,
+ struct sigaction __user *oact,
Added: people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0004pre1-ia64-kill-sys32_pipe.patch
==============================================================================
--- (empty file)
+++ people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0004pre1-ia64-kill-sys32_pipe.patch Tue Jan 20 07:44:38 2009
@@ -0,0 +1,51 @@
+commit 0f32dc9dc2cfe3e4608fd5cf7afa5d2acb6e3c10
+Author: Christoph Hellwig <hch at lst.de>
+Date: Mon Sep 1 18:18:10 2008 +0200
+
+ [IA64] kill sys32_pipe
+
+ It's just a duplicate of the generic sys_pipe that still lacks the
+ recently added error handling.
+
+ Signed-off-by: Christoph Hellwig <hch at lst.de>
+ Signed-off-by: Tony Luck <tony.luck at intel.com>
+
+Adjusted to apply to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+
+diff -urpN linux-source-2.6.26.orig/arch/ia64/ia32/ia32_entry.S linux-source-2.6.26/arch/ia64/ia32/ia32_entry.S
+--- linux-source-2.6.26.orig/arch/ia64/ia32/ia32_entry.S 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/arch/ia64/ia32/ia32_entry.S 2009-01-19 11:33:32.000000000 -0700
+@@ -215,7 +215,7 @@ ia32_syscall_table:
+ data8 sys_mkdir
+ data8 sys_rmdir /* 40 */
+ data8 sys_dup
+- data8 sys32_pipe
++ data8 sys_pipe
+ data8 compat_sys_times
+ data8 sys_ni_syscall /* old prof syscall holder */
+ data8 sys32_brk /* 45 */
+diff -urpN linux-source-2.6.26.orig/arch/ia64/ia32/sys_ia32.c linux-source-2.6.26/arch/ia64/ia32/sys_ia32.c
+--- linux-source-2.6.26.orig/arch/ia64/ia32/sys_ia32.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/arch/ia64/ia32/sys_ia32.c 2009-01-19 11:34:39.000000000 -0700
+@@ -1133,21 +1133,6 @@ sys32_mremap (unsigned int addr, unsigne
+ return ret;
+ }
+
+-asmlinkage long
+-sys32_pipe (int __user *fd)
+-{
+- int retval;
+- int fds[2];
+-
+- retval = do_pipe(fds);
+- if (retval)
+- goto out;
+- if (copy_to_user(fd, fds, sizeof(fds)))
+- retval = -EFAULT;
+- out:
+- return retval;
+-}
+-
+ static inline long
+ get_tv32 (struct timeval *o, struct compat_timeval __user *i)
+ {
Added: people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0005--CVE-2009-0029-Make-sys_pselect7-static.patch
==============================================================================
--- (empty file)
+++ people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0005--CVE-2009-0029-Make-sys_pselect7-static.patch Tue Jan 20 07:44:38 2009
@@ -0,0 +1,66 @@
+From c9da9f2129d6a421c32e334a83770a9e67f7feac Mon Sep 17 00:00:00 2001
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+Date: Wed, 14 Jan 2009 14:13:57 +0100
+Subject: [PATCH 05/44] [CVE-2009-0029] Make sys_pselect7 static
+
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+
+commit c9da9f2129d6a421c32e334a83770a9e67f7feac upstream.
+
+Not a single architecture has wired up sys_pselect7 plus it is the
+only system call with seven parameters. Just make it static and
+rename it to do_pselect which will do the work for sys_pselect6.
+
+Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+
+Adjusted to apply to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+
+diff -urpN linux-source-2.6.26.orig/fs/compat.c linux-source-2.6.26/fs/compat.c
+--- linux-source-2.6.26.orig/fs/compat.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/fs/compat.c 2009-01-19 11:42:04.000000000 -0700
+@@ -1636,7 +1636,7 @@ sticky:
+ }
+
+ #ifdef HAVE_SET_RESTORE_SIGMASK
+-asmlinkage long compat_sys_pselect7(int n, compat_ulong_t __user *inp,
++static long do_compat_pselect(int n, compat_ulong_t __user *inp,
+ compat_ulong_t __user *outp, compat_ulong_t __user *exp,
+ struct compat_timespec __user *tsp, compat_sigset_t __user *sigmask,
+ compat_size_t sigsetsize)
+@@ -1744,8 +1744,8 @@ asmlinkage long compat_sys_pselect6(int
+ (compat_size_t __user *)(sig+sizeof(up))))
+ return -EFAULT;
+ }
+- return compat_sys_pselect7(n, inp, outp, exp, tsp, compat_ptr(up),
+- sigsetsize);
++ return do_compat_pselect(n, inp, outp, exp, tsp, compat_ptr(up),
++ sigsetsize);
+ }
+
+ asmlinkage long compat_sys_ppoll(struct pollfd __user *ufds,
+diff -urpN linux-source-2.6.26.orig/fs/select.c linux-source-2.6.26/fs/select.c
+--- linux-source-2.6.26.orig/fs/select.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/fs/select.c 2009-01-19 11:42:04.000000000 -0700
+@@ -427,9 +427,9 @@ sticky:
+ }
+
+ #ifdef HAVE_SET_RESTORE_SIGMASK
+-asmlinkage long sys_pselect7(int n, fd_set __user *inp, fd_set __user *outp,
+- fd_set __user *exp, struct timespec __user *tsp,
+- const sigset_t __user *sigmask, size_t sigsetsize)
++static long do_pselect(int n, fd_set __user *inp, fd_set __user *outp,
++ fd_set __user *exp, struct timespec __user *tsp,
++ const sigset_t __user *sigmask, size_t sigsetsize)
+ {
+ s64 timeout = MAX_SCHEDULE_TIMEOUT;
+ sigset_t ksigmask, sigsaved;
+@@ -527,7 +527,7 @@ asmlinkage long sys_pselect6(int n, fd_s
+ return -EFAULT;
+ }
+
+- return sys_pselect7(n, inp, outp, exp, tsp, up, sigsetsize);
++ return do_pselect(n, inp, outp, exp, tsp, up, sigsetsize);
+ }
+ #endif /* HAVE_SET_RESTORE_SIGMASK */
+
Added: people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0006--CVE-2009-0029-Make-sys_syslog-a-conditional-system.patch
==============================================================================
--- (empty file)
+++ people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0006--CVE-2009-0029-Make-sys_syslog-a-conditional-system.patch Tue Jan 20 07:44:38 2009
@@ -0,0 +1,44 @@
+From f627a741d24f12955fa2d9f8831c3b12860635bd Mon Sep 17 00:00:00 2001
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+Date: Wed, 14 Jan 2009 14:13:58 +0100
+Subject: [PATCH 06/44] [CVE-2009-0029] Make sys_syslog a conditional system call
+
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+
+commit f627a741d24f12955fa2d9f8831c3b12860635bd upstream.
+
+Remove the -ENOSYS implementation for !CONFIG_PRINTK and use
+the cond_syscall infrastructure instead.
+
+Acked-by: Kyle McMartin <kyle at redhat.com>
+Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+
+Backported to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+
+diff -urpN linux-source-2.6.26.orig/kernel/printk.c linux-source-2.6.26/kernel/printk.c
+--- linux-source-2.6.26.orig/kernel/printk.c 2009-01-10 05:42:11.000000000 -0700
++++ linux-source-2.6.26/kernel/printk.c 2009-01-19 11:44:54.000000000 -0700
+@@ -802,11 +802,6 @@ EXPORT_SYMBOL(vprintk);
+
+ #else
+
+-asmlinkage long sys_syslog(int type, char __user *buf, int len)
+-{
+- return -ENOSYS;
+-}
+-
+ static void call_console_drivers(unsigned start, unsigned end)
+ {
+ }
+diff -urpN linux-source-2.6.26.orig/kernel/sys_ni.c linux-source-2.6.26/kernel/sys_ni.c
+--- linux-source-2.6.26.orig/kernel/sys_ni.c 2009-01-10 05:42:11.000000000 -0700
++++ linux-source-2.6.26/kernel/sys_ni.c 2009-01-19 11:48:00.000000000 -0700
+@@ -122,6 +122,7 @@ cond_syscall(sys_vm86old);
+ cond_syscall(sys_vm86);
+ cond_syscall(compat_sys_ipc);
+ cond_syscall(compat_sys_sysctl);
++cond_syscall(sys_syslog);
+
+ /* arch-specific weak syscall entries */
+ cond_syscall(sys_pciconfig_read);
Added: people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0007--CVE-2009-0029-System-call-wrapper-infrastructure.patch
==============================================================================
--- (empty file)
+++ people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0007--CVE-2009-0029-System-call-wrapper-infrastructure.patch Tue Jan 20 07:44:38 2009
@@ -0,0 +1,110 @@
+From 1a94bc34768e463a93cb3751819709ab0ea80a01 Mon Sep 17 00:00:00 2001
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+Date: Wed, 14 Jan 2009 14:13:59 +0100
+Subject: [PATCH 07/44] [CVE-2009-0029] System call wrapper infrastructure
+
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+
+commit 1a94bc34768e463a93cb3751819709ab0ea80a01 upstream.
+
+From: Martin Schwidefsky <schwidefsky at de.ibm.com>
+
+By selecting HAVE_SYSCALL_WRAPPERS architectures can activate
+system call wrappers in order to sign extend system call arguments.
+
+All architectures where the ABI defines that the caller of a function
+has to perform sign extension probably need this.
+
+Reported-by: Christian Borntraeger <borntraeger at de.ibm.com>
+Acked-by: Ralf Baechle <ralf at linux-mips.org>
+Signed-off-by: Martin Schwidefsky <schwidefsky at de.ibm.com>
+Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+
+Adjusted to apply to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+
+diff -urpN linux-source-2.6.26.orig/arch/Kconfig linux-source-2.6.26/arch/Kconfig
+--- linux-source-2.6.26.orig/arch/Kconfig 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/arch/Kconfig 2009-01-19 11:50:53.000000000 -0700
+@@ -27,6 +27,9 @@ config KPROBES
+ for kernel debugging, non-intrusive instrumentation and testing.
+ If in doubt, say "N".
+
++config HAVE_SYSCALL_WRAPPERS
++ bool
++
+ config KRETPROBES
+ def_bool y
+ depends on KPROBES && HAVE_KRETPROBES
+diff -urpN linux-source-2.6.26.orig/include/linux/syscalls.h linux-source-2.6.26/include/linux/syscalls.h
+--- linux-source-2.6.26.orig/include/linux/syscalls.h 2009-01-19 11:17:08.000000000 -0700
++++ linux-source-2.6.26/include/linux/syscalls.h 2009-01-19 11:50:53.000000000 -0700
+@@ -66,6 +66,68 @@ struct old_linux_dirent;
+ #include <linux/quota.h>
+ #include <linux/key.h>
+
++#define __SC_DECL1(t1, a1) t1 a1
++#define __SC_DECL2(t2, a2, ...) t2 a2, __SC_DECL1(__VA_ARGS__)
++#define __SC_DECL3(t3, a3, ...) t3 a3, __SC_DECL2(__VA_ARGS__)
++#define __SC_DECL4(t4, a4, ...) t4 a4, __SC_DECL3(__VA_ARGS__)
++#define __SC_DECL5(t5, a5, ...) t5 a5, __SC_DECL4(__VA_ARGS__)
++#define __SC_DECL6(t6, a6, ...) t6 a6, __SC_DECL5(__VA_ARGS__)
++
++#define __SC_LONG1(t1, a1) long a1
++#define __SC_LONG2(t2, a2, ...) long a2, __SC_LONG1(__VA_ARGS__)
++#define __SC_LONG3(t3, a3, ...) long a3, __SC_LONG2(__VA_ARGS__)
++#define __SC_LONG4(t4, a4, ...) long a4, __SC_LONG3(__VA_ARGS__)
++#define __SC_LONG5(t5, a5, ...) long a5, __SC_LONG4(__VA_ARGS__)
++#define __SC_LONG6(t6, a6, ...) long a6, __SC_LONG5(__VA_ARGS__)
++
++#define __SC_CAST1(t1, a1) (t1) a1
++#define __SC_CAST2(t2, a2, ...) (t2) a2, __SC_CAST1(__VA_ARGS__)
++#define __SC_CAST3(t3, a3, ...) (t3) a3, __SC_CAST2(__VA_ARGS__)
++#define __SC_CAST4(t4, a4, ...) (t4) a4, __SC_CAST3(__VA_ARGS__)
++#define __SC_CAST5(t5, a5, ...) (t5) a5, __SC_CAST4(__VA_ARGS__)
++#define __SC_CAST6(t6, a6, ...) (t6) a6, __SC_CAST5(__VA_ARGS__)
++
++#define __SC_TEST(type) BUILD_BUG_ON(sizeof(type) > sizeof(long))
++#define __SC_TEST1(t1, a1) __SC_TEST(t1)
++#define __SC_TEST2(t2, a2, ...) __SC_TEST(t2); __SC_TEST1(__VA_ARGS__)
++#define __SC_TEST3(t3, a3, ...) __SC_TEST(t3); __SC_TEST2(__VA_ARGS__)
++#define __SC_TEST4(t4, a4, ...) __SC_TEST(t4); __SC_TEST3(__VA_ARGS__)
++#define __SC_TEST5(t5, a5, ...) __SC_TEST(t5); __SC_TEST4(__VA_ARGS__)
++#define __SC_TEST6(t6, a6, ...) __SC_TEST(t6); __SC_TEST5(__VA_ARGS__)
++
++#define SYSCALL_DEFINE0(name) asmlinkage long sys_##name(void)
++#define SYSCALL_DEFINE1(...) SYSCALL_DEFINEx(1, __VA_ARGS__)
++#define SYSCALL_DEFINE2(...) SYSCALL_DEFINEx(2, __VA_ARGS__)
++#define SYSCALL_DEFINE3(...) SYSCALL_DEFINEx(3, __VA_ARGS__)
++#define SYSCALL_DEFINE4(...) SYSCALL_DEFINEx(4, __VA_ARGS__)
++#define SYSCALL_DEFINE5(...) SYSCALL_DEFINEx(5, __VA_ARGS__)
++#define SYSCALL_DEFINE6(...) SYSCALL_DEFINEx(6, __VA_ARGS__)
++
++#define SYSCALL_ALIAS(alias, name) \
++ asm ("\t.globl " #alias "\n\t.set " #alias ", " #name)
++
++#ifdef CONFIG_HAVE_SYSCALL_WRAPPERS
++
++#define SYSCALL_DEFINE(name) static inline long SYSC_##name
++#define SYSCALL_DEFINEx(x, name, ...) \
++ asmlinkage long sys_##name(__SC_DECL##x(__VA_ARGS__)); \
++ static inline long SYSC_##name(__SC_DECL##x(__VA_ARGS__)); \
++ asmlinkage long SyS_##name(__SC_LONG##x(__VA_ARGS__)) \
++ { \
++ __SC_TEST##x(__VA_ARGS__); \
++ return (long) SYSC_##name(__SC_CAST##x(__VA_ARGS__)); \
++ } \
++ SYSCALL_ALIAS(sys_##name, SyS_##name); \
++ static inline long SYSC_##name(__SC_DECL##x(__VA_ARGS__))
++
++#else /* CONFIG_HAVE_SYSCALL_WRAPPERS */
++
++#define SYSCALL_DEFINE(name) asmlinkage long sys_##name
++#define SYSCALL_DEFINEx(x, name, ...) \
++ asmlinkage long sys_##name(__SC_DECL##x(__VA_ARGS__))
++
++#endif /* CONFIG_HAVE_SYSCALL_WRAPPERS */
++
+ asmlinkage long sys_time(time_t __user *tloc);
+ asmlinkage long sys_stime(time_t __user *tptr);
+ asmlinkage long sys_gettimeofday(struct timeval __user *tv,
Added: people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0008--CVE-2009-0029-powerpc-Enable-syscall-wrappers-for.patch
==============================================================================
--- (empty file)
+++ people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0008--CVE-2009-0029-powerpc-Enable-syscall-wrappers-for.patch Tue Jan 20 07:44:38 2009
@@ -0,0 +1,47 @@
+From ee6a093222549ac0c72cfd296c69fa5e7d6daa34 Mon Sep 17 00:00:00 2001
+From: Benjamin Herrenschmidt <benh at kernel.crashing.org>
+Date: Wed, 14 Jan 2009 14:14:00 +0100
+Subject: [PATCH 08/44] [CVE-2009-0029] powerpc: Enable syscall wrappers for 64-bit
+
+From: Benjamin Herrenschmidt <benh at kernel.crashing.org>
+
+commit ee6a093222549ac0c72cfd296c69fa5e7d6daa34 upstream.
+
+This enables the use of syscall wrappers to do proper sign extension
+for 64-bit programs.
+
+Signed-off-by: Benjamin Herrenschmidt <benh at kernel.crashing.org>
+Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+
+Adjusted to apply to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+
+diff -urpN linux-source-2.6.26.orig/arch/powerpc/Kconfig linux-source-2.6.26/arch/powerpc/Kconfig
+--- linux-source-2.6.26.orig/arch/powerpc/Kconfig 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/arch/powerpc/Kconfig 2009-01-19 11:54:09.000000000 -0700
+@@ -110,6 +110,7 @@ config PPC
+ select HAVE_KPROBES
+ select HAVE_KRETPROBES
+ select HAVE_LMB
++ select HAVE_SYSCALL_WRAPPERS if PPC64
+
+ config EARLY_PRINTK
+ bool
+diff -urpN linux-source-2.6.26.orig/include/linux/syscalls.h linux-source-2.6.26/include/linux/syscalls.h
+--- linux-source-2.6.26.orig/include/linux/syscalls.h 2009-01-19 11:50:53.000000000 -0700
++++ linux-source-2.6.26/include/linux/syscalls.h 2009-01-19 11:53:03.000000000 -0700
+@@ -103,8 +103,14 @@ struct old_linux_dirent;
+ #define SYSCALL_DEFINE5(...) SYSCALL_DEFINEx(5, __VA_ARGS__)
+ #define SYSCALL_DEFINE6(...) SYSCALL_DEFINEx(6, __VA_ARGS__)
+
++#ifdef CONFIG_PPC64
++#define SYSCALL_ALIAS(alias, name) \
++ asm ("\t.globl " #alias "\n\t.set " #alias ", " #name "\n" \
++ "\t.globl ." #alias "\n\t.set ." #alias ", ." #name)
++#else
+ #define SYSCALL_ALIAS(alias, name) \
+ asm ("\t.globl " #alias "\n\t.set " #alias ", " #name)
++#endif
+
+ #ifdef CONFIG_HAVE_SYSCALL_WRAPPERS
+
Added: people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0009--CVE-2009-0029-s390-enable-system-call-wrappers.patch
==============================================================================
--- (empty file)
+++ people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0009--CVE-2009-0029-s390-enable-system-call-wrappers.patch Tue Jan 20 07:44:38 2009
@@ -0,0 +1,25 @@
+From ed6bb6194350dc6ae97a65dbf2d621a3dbe6bbe9 Mon Sep 17 00:00:00 2001
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+Date: Wed, 14 Jan 2009 14:14:01 +0100
+Subject: [PATCH 09/44] [CVE-2009-0029] s390: enable system call wrappers
+
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+
+commit ed6bb6194350dc6ae97a65dbf2d621a3dbe6bbe9 upstream.
+
+Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+---
+ arch/s390/Kconfig | 1 +
+ 1 file changed, 1 insertion(+)
+
+--- a/arch/s390/Kconfig
++++ b/arch/s390/Kconfig
+@@ -70,6 +70,7 @@ mainmenu "Linux Kernel Configuration"
+
+ config S390
+ def_bool y
++ select HAVE_SYSCALL_WRAPPERS
+ select HAVE_OPROFILE
+ select HAVE_KPROBES
+ select HAVE_KRETPROBES
Added: people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0010--CVE-2009-0029-System-call-wrapper-special-cases.patch
==============================================================================
--- (empty file)
+++ people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0010--CVE-2009-0029-System-call-wrapper-special-cases.patch Tue Jan 20 07:44:38 2009
@@ -0,0 +1,295 @@
+From 6673e0c3fbeaed2cd08e2fd4a4aa97382d6fedb0 Mon Sep 17 00:00:00 2001
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+Date: Wed, 14 Jan 2009 14:14:02 +0100
+Subject: [PATCH 10/44] [CVE-2009-0029] System call wrapper special cases
+
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+
+commit 6673e0c3fbeaed2cd08e2fd4a4aa97382d6fedb0 upstream.
+
+System calls with an unsigned long long argument can't be converted with
+the standard wrappers since that would include a cast to long, which in
+turn means that we would lose the upper 32 bit on 32 bit architectures.
+Also semctl can't use the standard wrapper since it has a 'union'
+parameter.
+
+So we handle them as special case and add some extra wrappers instead.
+
+Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+
+Adjusted to apply to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+
+diff -urpN linux-source-2.6.26.orig/fs/dcookies.c linux-source-2.6.26/fs/dcookies.c
+--- linux-source-2.6.26.orig/fs/dcookies.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/fs/dcookies.c 2009-01-19 11:55:54.000000000 -0700
+@@ -140,7 +140,7 @@ out:
+ /* And here is where the userspace process can look up the cookie value
+ * to retrieve the path.
+ */
+-asmlinkage long sys_lookup_dcookie(u64 cookie64, char __user * buf, size_t len)
++SYSCALL_DEFINE(lookup_dcookie)(u64 cookie64, char __user * buf, size_t len)
+ {
+ unsigned long cookie = (unsigned long)cookie64;
+ int err = -EINVAL;
+@@ -193,7 +193,13 @@ out:
+ mutex_unlock(&dcookie_mutex);
+ return err;
+ }
+-
++#ifdef CONFIG_HAVE_SYSCALL_WRAPPERS
++asmlinkage long SyS_lookup_dcookie(u64 cookie64, long buf, long len)
++{
++ return SYSC_lookup_dcookie(cookie64, (char __user *) buf, (size_t) len);
++}
++SYSCALL_ALIAS(sys_lookup_dcookie, SyS_lookup_dcookie);
++#endif
+
+ static int dcookie_init(void)
+ {
+diff -urpN linux-source-2.6.26.orig/fs/open.c linux-source-2.6.26/fs/open.c
+--- linux-source-2.6.26.orig/fs/open.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/fs/open.c 2009-01-19 11:55:54.000000000 -0700
+@@ -345,21 +345,35 @@ asmlinkage long sys_ftruncate(unsigned i
+
+ /* LFS versions of truncate are only needed on 32 bit machines */
+ #if BITS_PER_LONG == 32
+-asmlinkage long sys_truncate64(const char __user * path, loff_t length)
++SYSCALL_DEFINE(truncate64)(const char __user * path, loff_t length)
+ {
+ return do_sys_truncate(path, length);
+ }
++#ifdef CONFIG_HAVE_SYSCALL_WRAPPERS
++asmlinkage long SyS_truncate64(long path, loff_t length)
++{
++ return SYSC_truncate64((const char __user *) path, length);
++}
++SYSCALL_ALIAS(sys_truncate64, SyS_truncate64);
++#endif
+
+-asmlinkage long sys_ftruncate64(unsigned int fd, loff_t length)
++SYSCALL_DEFINE(ftruncate64)(unsigned int fd, loff_t length)
+ {
+ long ret = do_sys_ftruncate(fd, length, 0);
+ /* avoid REGPARM breakage on x86: */
+ asmlinkage_protect(2, ret, fd, length);
+ return ret;
+ }
++#ifdef CONFIG_HAVE_SYSCALL_WRAPPERS
++asmlinkage long SyS_ftruncate64(long fd, loff_t length)
++{
++ return SYSC_ftruncate64((unsigned int) fd, length);
++}
++SYSCALL_ALIAS(sys_ftruncate64, SyS_ftruncate64);
+ #endif
++#endif /* BITS_PER_LONG == 32 */
+
+-asmlinkage long sys_fallocate(int fd, int mode, loff_t offset, loff_t len)
++SYSCALL_DEFINE(fallocate)(int fd, int mode, loff_t offset, loff_t len)
+ {
+ struct file *file;
+ struct inode *inode;
+@@ -416,6 +430,13 @@ out_fput:
+ out:
+ return ret;
+ }
++#ifdef CONFIG_HAVE_SYSCALL_WRAPPERS
++asmlinkage long SyS_fallocate(long fd, long mode, loff_t offset, loff_t len)
++{
++ return SYSC_fallocate((int)fd, (int)mode, offset, len);
++}
++SYSCALL_ALIAS(sys_fallocate, SyS_fallocate);
++#endif
+
+ /*
+ * access() needs to use the real uid/gid, not the effective uid/gid.
+diff -urpN linux-source-2.6.26.orig/fs/read_write.c linux-source-2.6.26/fs/read_write.c
+--- linux-source-2.6.26.orig/fs/read_write.c 2009-01-19 11:12:44.000000000 -0700
++++ linux-source-2.6.26/fs/read_write.c 2009-01-19 11:55:54.000000000 -0700
+@@ -384,8 +384,8 @@ asmlinkage long sys_write(unsigned int f
+ return ret;
+ }
+
+-asmlinkage long sys_pread64(unsigned int fd, char __user *buf,
+- size_t count, loff_t pos)
++SYSCALL_DEFINE(pread64)(unsigned int fd, char __user *buf,
++ size_t count, loff_t pos)
+ {
+ struct file *file;
+ ssize_t ret = -EBADF;
+@@ -404,9 +404,17 @@ asmlinkage long sys_pread64(unsigned int
+
+ return ret;
+ }
++#ifdef CONFIG_HAVE_SYSCALL_WRAPPERS
++asmlinkage long SyS_pread64(long fd, long buf, long count, loff_t pos)
++{
++ return SYSC_pread64((unsigned int) fd, (char __user *) buf,
++ (size_t) count, pos);
++}
++SYSCALL_ALIAS(sys_pread64, SyS_pread64);
++#endif
+
+-asmlinkage long sys_pwrite64(unsigned int fd, const char __user *buf,
+- size_t count, loff_t pos)
++SYSCALL_DEFINE(pwrite64)(unsigned int fd, const char __user *buf,
++ size_t count, loff_t pos)
+ {
+ struct file *file;
+ ssize_t ret = -EBADF;
+@@ -425,6 +433,14 @@ asmlinkage long sys_pwrite64(unsigned in
+
+ return ret;
+ }
++#ifdef CONFIG_HAVE_SYSCALL_WRAPPERS
++asmlinkage long SyS_pwrite64(long fd, long buf, long count, loff_t pos)
++{
++ return SYSC_pwrite64((unsigned int) fd, (const char __user *) buf,
++ (size_t) count, pos);
++}
++SYSCALL_ALIAS(sys_pwrite64, SyS_pwrite64);
++#endif
+
+ /*
+ * Reduce an iovec's length in-place. Return the resulting number of segments
+diff -urpN linux-source-2.6.26.orig/fs/sync.c linux-source-2.6.26/fs/sync.c
+--- linux-source-2.6.26.orig/fs/sync.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/fs/sync.c 2009-01-19 11:55:54.000000000 -0700
+@@ -174,8 +174,8 @@ asmlinkage long sys_fdatasync(unsigned i
+ * already-instantiated disk blocks, there are no guarantees here that the data
+ * will be available after a crash.
+ */
+-asmlinkage long sys_sync_file_range(int fd, loff_t offset, loff_t nbytes,
+- unsigned int flags)
++SYSCALL_DEFINE(sync_file_range)(int fd, loff_t offset, loff_t nbytes,
++ unsigned int flags)
+ {
+ int ret;
+ struct file *file;
+@@ -235,14 +235,32 @@ out_put:
+ out:
+ return ret;
+ }
++#ifdef CONFIG_HAVE_SYSCALL_WRAPPERS
++asmlinkage long SyS_sync_file_range(long fd, loff_t offset, loff_t nbytes,
++ long flags)
++{
++ return SYSC_sync_file_range((int) fd, offset, nbytes,
++ (unsigned int) flags);
++}
++SYSCALL_ALIAS(sys_sync_file_range, SyS_sync_file_range);
++#endif
+
+ /* It would be nice if people remember that not all the world's an i386
+ when they introduce new system calls */
+-asmlinkage long sys_sync_file_range2(int fd, unsigned int flags,
+- loff_t offset, loff_t nbytes)
++SYSCALL_DEFINE(sync_file_range2)(int fd, unsigned int flags,
++ loff_t offset, loff_t nbytes)
+ {
+ return sys_sync_file_range(fd, offset, nbytes, flags);
+ }
++#ifdef CONFIG_HAVE_SYSCALL_WRAPPERS
++asmlinkage long SyS_sync_file_range2(long fd, long flags,
++ loff_t offset, loff_t nbytes)
++{
++ return SYSC_sync_file_range2((int) fd, (unsigned int) flags,
++ offset, nbytes);
++}
++SYSCALL_ALIAS(sys_sync_file_range2, SyS_sync_file_range2);
++#endif
+
+ /*
+ * `endbyte' is inclusive
+diff -urpN linux-source-2.6.26.orig/ipc/sem.c linux-source-2.6.26/ipc/sem.c
+--- linux-source-2.6.26.orig/ipc/sem.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/ipc/sem.c 2009-01-19 11:55:54.000000000 -0700
+@@ -893,7 +893,7 @@ out_up:
+ return err;
+ }
+
+-asmlinkage long sys_semctl (int semid, int semnum, int cmd, union semun arg)
++SYSCALL_DEFINE(semctl)(int semid, int semnum, int cmd, union semun arg)
+ {
+ int err = -EINVAL;
+ int version;
+@@ -929,6 +929,13 @@ asmlinkage long sys_semctl (int semid, i
+ return -EINVAL;
+ }
+ }
++#ifdef CONFIG_HAVE_SYSCALL_WRAPPERS
++asmlinkage long SyS_semctl(int semid, int semnum, int cmd, union semun arg)
++{
++ return SYSC_semctl((int) semid, (int) semnum, (int) cmd, arg);
++}
++SYSCALL_ALIAS(sys_semctl, SyS_semctl);
++#endif
+
+ /* If the task doesn't already have a undo_list, then allocate one
+ * here. We guarantee there is only one thread using this undo list,
+diff -urpN linux-source-2.6.26.orig/mm/fadvise.c linux-source-2.6.26/mm/fadvise.c
+--- linux-source-2.6.26.orig/mm/fadvise.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/mm/fadvise.c 2009-01-19 11:55:54.000000000 -0700
+@@ -24,7 +24,7 @@
+ * POSIX_FADV_WILLNEED could set PG_Referenced, and POSIX_FADV_NOREUSE could
+ * deactivate the pages and clear PG_Referenced.
+ */
+-asmlinkage long sys_fadvise64_64(int fd, loff_t offset, loff_t len, int advice)
++SYSCALL_DEFINE(fadvise64_64)(int fd, loff_t offset, loff_t len, int advice)
+ {
+ struct file *file = fget(fd);
+ struct address_space *mapping;
+@@ -126,12 +126,26 @@ out:
+ fput(file);
+ return ret;
+ }
++#ifdef CONFIG_HAVE_SYSCALL_WRAPPERS
++asmlinkage long SyS_fadvise64_64(long fd, loff_t offset, loff_t len, long advice)
++{
++ return SYSC_fadvise64_64((int) fd, offset, len, (int) advice);
++}
++SYSCALL_ALIAS(sys_fadvise64_64, SyS_fadvise64_64);
++#endif
+
+ #ifdef __ARCH_WANT_SYS_FADVISE64
+
+-asmlinkage long sys_fadvise64(int fd, loff_t offset, size_t len, int advice)
++SYSCALL_DEFINE(fadvise64)(int fd, loff_t offset, size_t len, int advice)
+ {
+ return sys_fadvise64_64(fd, offset, len, advice);
+ }
++#ifdef CONFIG_HAVE_SYSCALL_WRAPPERS
++asmlinkage long SyS_fadvise64(long fd, loff_t offset, long len, long advice)
++{
++ return SYSC_fadvise64((int) fd, offset, (size_t)len, (int)advice);
++}
++SYSCALL_ALIAS(sys_fadvise64, SyS_fadvise64);
++#endif
+
+ #endif
+diff -urpN linux-source-2.6.26.orig/mm/filemap.c linux-source-2.6.26/mm/filemap.c
+--- linux-source-2.6.26.orig/mm/filemap.c 2009-01-19 11:12:44.000000000 -0700
++++ linux-source-2.6.26/mm/filemap.c 2009-01-19 11:55:54.000000000 -0700
+@@ -1253,7 +1253,7 @@ do_readahead(struct address_space *mappi
+ return 0;
+ }
+
+-asmlinkage long sys_readahead(int fd, loff_t offset, size_t count)
++SYSCALL_DEFINE(readahead)(int fd, loff_t offset, size_t count)
+ {
+ ssize_t ret;
+ struct file *file;
+@@ -1272,6 +1272,13 @@ asmlinkage long sys_readahead(int fd, lo
+ }
+ return ret;
+ }
++#ifdef CONFIG_HAVE_SYSCALL_WRAPPERS
++asmlinkage long SyS_readahead(long fd, loff_t offset, long count)
++{
++ return SYSC_readahead((int) fd, offset, (size_t) count);
++}
++SYSCALL_ALIAS(sys_readahead, SyS_readahead);
++#endif
+
+ #ifdef CONFIG_MMU
+ /**
Added: people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0011--CVE-2009-0029-System-call-wrappers-part-01.patch
==============================================================================
--- (empty file)
+++ people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0011--CVE-2009-0029-System-call-wrappers-part-01.patch Tue Jan 20 07:44:38 2009
@@ -0,0 +1,122 @@
+From 58fd3aa288939d3097fa04505b25c2f5e6e144d1 Mon Sep 17 00:00:00 2001
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+Date: Wed, 14 Jan 2009 14:14:03 +0100
+Subject: [PATCH 11/44] [CVE-2009-0029] System call wrappers part 01
+
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+
+commit 58fd3aa288939d3097fa04505b25c2f5e6e144d1 upstream.
+
+Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+
+Adjusted to apply to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+
+diff -urpN linux-source-2.6.26.orig/kernel/hrtimer.c linux-source-2.6.26/kernel/hrtimer.c
+--- linux-source-2.6.26.orig/kernel/hrtimer.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/kernel/hrtimer.c 2009-01-19 11:57:28.000000000 -0700
+@@ -1561,8 +1561,8 @@ out:
+ return ret;
+ }
+
+-asmlinkage long
+-sys_nanosleep(struct timespec __user *rqtp, struct timespec __user *rmtp)
++SYSCALL_DEFINE2(nanosleep, struct timespec __user *, rqtp,
++ struct timespec __user *, rmtp)
+ {
+ struct timespec tu;
+
+diff -urpN linux-source-2.6.26.orig/kernel/sys.c linux-source-2.6.26/kernel/sys.c
+--- linux-source-2.6.26.orig/kernel/sys.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/kernel/sys.c 2009-01-19 11:57:28.000000000 -0700
+@@ -868,7 +868,7 @@ asmlinkage long sys_setfsgid(gid_t gid)
+ return old_fsgid;
+ }
+
+-asmlinkage long sys_times(struct tms __user * tbuf)
++SYSCALL_DEFINE1(times, struct tms __user *, tbuf)
+ {
+ /*
+ * In the SMP world we might just be unlucky and have one of
+diff -urpN linux-source-2.6.26.orig/kernel/time.c linux-source-2.6.26/kernel/time.c
+--- linux-source-2.6.26.orig/kernel/time.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/kernel/time.c 2009-01-19 11:57:28.000000000 -0700
+@@ -59,7 +59,7 @@ EXPORT_SYMBOL(sys_tz);
+ * why not move it into the appropriate arch directory (for those
+ * architectures that need it).
+ */
+-asmlinkage long sys_time(time_t __user * tloc)
++SYSCALL_DEFINE1(time, time_t __user *, tloc)
+ {
+ time_t i = get_seconds();
+
+@@ -77,7 +77,7 @@ asmlinkage long sys_time(time_t __user *
+ * architectures that need it).
+ */
+
+-asmlinkage long sys_stime(time_t __user *tptr)
++SYSCALL_DEFINE1(stime, time_t __user *, tptr)
+ {
+ struct timespec tv;
+ int err;
+@@ -97,8 +97,8 @@ asmlinkage long sys_stime(time_t __user
+
+ #endif /* __ARCH_WANT_SYS_TIME */
+
+-asmlinkage long sys_gettimeofday(struct timeval __user *tv,
+- struct timezone __user *tz)
++SYSCALL_DEFINE2(gettimeofday, struct timeval __user *, tv,
++ struct timezone __user *, tz)
+ {
+ if (likely(tv != NULL)) {
+ struct timeval ktv;
+@@ -182,8 +182,8 @@ int do_sys_settimeofday(struct timespec
+ return 0;
+ }
+
+-asmlinkage long sys_settimeofday(struct timeval __user *tv,
+- struct timezone __user *tz)
++SYSCALL_DEFINE2(settimeofday, struct timeval __user *, tv,
++ struct timezone __user *, tz)
+ {
+ struct timeval user_tv;
+ struct timespec new_ts;
+@@ -203,7 +203,7 @@ asmlinkage long sys_settimeofday(struct
+ return do_sys_settimeofday(tv ? &new_ts : NULL, tz ? &new_tz : NULL);
+ }
+
+-asmlinkage long sys_adjtimex(struct timex __user *txc_p)
++SYSCALL_DEFINE1(adjtimex, struct timex __user *, txc_p)
+ {
+ struct timex txc; /* Local copy of parameter */
+ int ret;
+diff -urpN linux-source-2.6.26.orig/kernel/timer.c linux-source-2.6.26/kernel/timer.c
+--- linux-source-2.6.26.orig/kernel/timer.c 2009-01-19 11:12:44.000000000 -0700
++++ linux-source-2.6.26/kernel/timer.c 2009-01-19 11:57:28.000000000 -0700
+@@ -1082,7 +1082,7 @@ void do_timer(unsigned long ticks)
+ * For backwards compatibility? This can be done in libc so Alpha
+ * and all newer ports shouldn't need it.
+ */
+-asmlinkage long sys_alarm(unsigned int seconds)
++SYSCALL_DEFINE1(alarm, unsigned int, seconds)
+ {
+ return alarm_setitimer(seconds);
+ }
+@@ -1105,7 +1105,7 @@ asmlinkage long sys_alarm(unsigned int s
+ *
+ * This is SMP safe as current->tgid does not change.
+ */
+-asmlinkage long sys_getpid(void)
++SYSCALL_DEFINE0(getpid)
+ {
+ return task_tgid_vnr(current);
+ }
+@@ -1261,7 +1261,7 @@ signed long __sched schedule_timeout_uni
+ EXPORT_SYMBOL(schedule_timeout_uninterruptible);
+
+ /* Thread ID - the internal kernel "pid" */
+-asmlinkage long sys_gettid(void)
++SYSCALL_DEFINE0(gettid)
+ {
+ return task_pid_vnr(current);
+ }
Added: people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0012--CVE-2009-0029-System-call-wrappers-part-02.patch
==============================================================================
--- (empty file)
+++ people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0012--CVE-2009-0029-System-call-wrappers-part-02.patch Tue Jan 20 07:44:38 2009
@@ -0,0 +1,103 @@
+From dbf040d9d1cbf1ef6250bdb095c5c118950bcde8 Mon Sep 17 00:00:00 2001
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+Date: Wed, 14 Jan 2009 14:14:04 +0100
+Subject: [PATCH 12/44] [CVE-2009-0029] System call wrappers part 02
+
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+
+commit dbf040d9d1cbf1ef6250bdb095c5c118950bcde8 upstream.
+
+Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+
+Adjusted to apply to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+
+diff -urpN linux-source-2.6.26.orig/kernel/sys.c linux-source-2.6.26/kernel/sys.c
+--- linux-source-2.6.26.orig/kernel/sys.c 2009-01-19 11:57:28.000000000 -0700
++++ linux-source-2.6.26/kernel/sys.c 2009-01-19 11:58:42.000000000 -0700
+@@ -748,7 +748,7 @@ asmlinkage long sys_setresuid(uid_t ruid
+ return security_task_post_setuid(old_ruid, old_euid, old_suid, LSM_SETID_RES);
+ }
+
+-asmlinkage long sys_getresuid(uid_t __user *ruid, uid_t __user *euid, uid_t __user *suid)
++SYSCALL_DEFINE3(getresuid, uid_t __user *, ruid, uid_t __user *, euid, uid_t __user *, suid)
+ {
+ int retval;
+
+@@ -799,7 +799,7 @@ asmlinkage long sys_setresgid(gid_t rgid
+ return 0;
+ }
+
+-asmlinkage long sys_getresgid(gid_t __user *rgid, gid_t __user *egid, gid_t __user *sgid)
++SYSCALL_DEFINE3(getresgid, gid_t __user *, rgid, gid_t __user *, egid, gid_t __user *, sgid)
+ {
+ int retval;
+
+@@ -989,7 +989,7 @@ out:
+ return err;
+ }
+
+-asmlinkage long sys_getpgid(pid_t pid)
++SYSCALL_DEFINE1(getpgid, pid_t, pid)
+ {
+ struct task_struct *p;
+ struct pid *grp;
+@@ -1019,14 +1019,14 @@ out:
+
+ #ifdef __ARCH_WANT_SYS_GETPGRP
+
+-asmlinkage long sys_getpgrp(void)
++SYSCALL_DEFINE0(getpgrp)
+ {
+ return sys_getpgid(0);
+ }
+
+ #endif
+
+-asmlinkage long sys_getsid(pid_t pid)
++SYSCALL_DEFINE1(getsid, pid_t, pid)
+ {
+ struct task_struct *p;
+ struct pid *sid;
+diff -urpN linux-source-2.6.26.orig/kernel/timer.c linux-source-2.6.26/kernel/timer.c
+--- linux-source-2.6.26.orig/kernel/timer.c 2009-01-19 11:57:28.000000000 -0700
++++ linux-source-2.6.26/kernel/timer.c 2009-01-19 11:58:42.000000000 -0700
+@@ -1116,7 +1116,7 @@ SYSCALL_DEFINE0(getpid)
+ * value of ->real_parent under rcu_read_lock(), see
+ * release_task()->call_rcu(delayed_put_task_struct).
+ */
+-asmlinkage long sys_getppid(void)
++SYSCALL_DEFINE0(getppid)
+ {
+ int pid;
+
+@@ -1127,25 +1127,25 @@ asmlinkage long sys_getppid(void)
+ return pid;
+ }
+
+-asmlinkage long sys_getuid(void)
++SYSCALL_DEFINE0(getuid)
+ {
+ /* Only we change this so SMP safe */
+ return current->uid;
+ }
+
+-asmlinkage long sys_geteuid(void)
++SYSCALL_DEFINE0(geteuid)
+ {
+ /* Only we change this so SMP safe */
+ return current->euid;
+ }
+
+-asmlinkage long sys_getgid(void)
++SYSCALL_DEFINE0(getgid)
+ {
+ /* Only we change this so SMP safe */
+ return current->gid;
+ }
+
+-asmlinkage long sys_getegid(void)
++SYSCALL_DEFINE0(getegid)
+ {
+ /* Only we change this so SMP safe */
+ return current->egid;
Added: people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0013--CVE-2009-0029-System-call-wrappers-part-03.patch
==============================================================================
--- (empty file)
+++ people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0013--CVE-2009-0029-System-call-wrappers-part-03.patch Tue Jan 20 07:44:38 2009
@@ -0,0 +1,98 @@
+From ae1251ab785f6da87219df8352ffdac68bba23e4 Mon Sep 17 00:00:00 2001
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+Date: Wed, 14 Jan 2009 14:14:05 +0100
+Subject: [PATCH 13/44] [CVE-2009-0029] System call wrappers part 03
+
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+
+commit ae1251ab785f6da87219df8352ffdac68bba23e4 upstream.
+
+Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+
+Adjusted to apply to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+
+diff -urpN linux-source-2.6.26.orig/kernel/sys.c linux-source-2.6.26/kernel/sys.c
+--- linux-source-2.6.26.orig/kernel/sys.c 2009-01-19 11:58:42.000000000 -0700
++++ linux-source-2.6.26/kernel/sys.c 2009-01-19 11:59:57.000000000 -0700
+@@ -485,7 +485,7 @@ void ctrl_alt_del(void)
+ * SMP: There are not races, the GIDs are checked only by filesystem
+ * operations (as far as semantic preservation is concerned).
+ */
+-asmlinkage long sys_setregid(gid_t rgid, gid_t egid)
++SYSCALL_DEFINE2(setregid, gid_t, rgid, gid_t, egid)
+ {
+ int old_rgid = current->gid;
+ int old_egid = current->egid;
+@@ -534,7 +534,7 @@ asmlinkage long sys_setregid(gid_t rgid,
+ *
+ * SMP: Same implicit races as above.
+ */
+-asmlinkage long sys_setgid(gid_t gid)
++SYSCALL_DEFINE1(setgid, gid_t, gid)
+ {
+ int old_egid = current->egid;
+ int retval;
+@@ -604,7 +604,7 @@ static int set_user(uid_t new_ruid, int
+ * 100% compatible with BSD. A program which uses just setuid() will be
+ * 100% compatible with POSIX with saved IDs.
+ */
+-asmlinkage long sys_setreuid(uid_t ruid, uid_t euid)
++SYSCALL_DEFINE2(setreuid, uid_t, ruid, uid_t, euid)
+ {
+ int old_ruid, old_euid, old_suid, new_ruid, new_euid;
+ int retval;
+@@ -666,7 +666,7 @@ asmlinkage long sys_setreuid(uid_t ruid,
+ * will allow a root program to temporarily drop privileges and be able to
+ * regain them by swapping the real and effective uid.
+ */
+-asmlinkage long sys_setuid(uid_t uid)
++SYSCALL_DEFINE1(setuid, uid_t, uid)
+ {
+ int old_euid = current->euid;
+ int old_ruid, old_suid, new_suid;
+@@ -705,7 +705,7 @@ asmlinkage long sys_setuid(uid_t uid)
+ * This function implements a generic ability to update ruid, euid,
+ * and suid. This allows you to implement the 4.4 compatible seteuid().
+ */
+-asmlinkage long sys_setresuid(uid_t ruid, uid_t euid, uid_t suid)
++SYSCALL_DEFINE3(setresuid, uid_t, ruid, uid_t, euid, uid_t, suid)
+ {
+ int old_ruid = current->uid;
+ int old_euid = current->euid;
+@@ -762,7 +762,7 @@ SYSCALL_DEFINE3(getresuid, uid_t __user
+ /*
+ * Same as above, but for rgid, egid, sgid.
+ */
+-asmlinkage long sys_setresgid(gid_t rgid, gid_t egid, gid_t sgid)
++SYSCALL_DEFINE3(setresgid, gid_t, rgid, gid_t, egid, gid_t, sgid)
+ {
+ int retval;
+
+@@ -817,7 +817,7 @@ SYSCALL_DEFINE3(getresgid, gid_t __user
+ * whatever uid it wants to). It normally shadows "euid", except when
+ * explicitly set by setfsuid() or for access..
+ */
+-asmlinkage long sys_setfsuid(uid_t uid)
++SYSCALL_DEFINE1(setfsuid, uid_t, uid)
+ {
+ int old_fsuid;
+
+@@ -846,7 +846,7 @@ asmlinkage long sys_setfsuid(uid_t uid)
+ /*
+ * Samma på svenska..
+ */
+-asmlinkage long sys_setfsgid(gid_t gid)
++SYSCALL_DEFINE1(setfsgid, gid_t, gid)
+ {
+ int old_fsgid;
+
+@@ -1260,7 +1260,7 @@ int set_current_groups(struct group_info
+
+ EXPORT_SYMBOL(set_current_groups);
+
+-asmlinkage long sys_getgroups(int gidsetsize, gid_t __user *grouplist)
++SYSCALL_DEFINE2(getgroups, int, gidsetsize, gid_t __user *, grouplist)
+ {
+ int i = 0;
+
Added: people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0014--CVE-2009-0029-System-call-wrappers-part-04.patch
==============================================================================
--- (empty file)
+++ people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0014--CVE-2009-0029-System-call-wrappers-part-04.patch Tue Jan 20 07:44:38 2009
@@ -0,0 +1,126 @@
+From b290ebe2c46d01b742b948ce03f09e8a3efb9a92 Mon Sep 17 00:00:00 2001
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+Date: Wed, 14 Jan 2009 14:14:06 +0100
+Subject: [PATCH 14/44] [CVE-2009-0029] System call wrappers part 04
+
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+
+commit b290ebe2c46d01b742b948ce03f09e8a3efb9a92 upstream.
+
+Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+
+Adjusted to apply to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+
+diff -urpN linux-source-2.6.26.orig/kernel/acct.c linux-source-2.6.26/kernel/acct.c
+--- linux-source-2.6.26.orig/kernel/acct.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/kernel/acct.c 2009-01-19 12:00:45.000000000 -0700
+@@ -255,7 +255,7 @@ static int acct_on(char *name)
+ * should be written. If the filename is NULL, accounting will be
+ * shutdown.
+ */
+-asmlinkage long sys_acct(const char __user *name)
++SYSCALL_DEFINE1(acct, const char __user *, name)
+ {
+ int error;
+
+diff -urpN linux-source-2.6.26.orig/kernel/capability.c linux-source-2.6.26/kernel/capability.c
+--- linux-source-2.6.26.orig/kernel/capability.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/kernel/capability.c 2009-01-19 12:00:45.000000000 -0700
+@@ -151,7 +151,7 @@ EXPORT_SYMBOL(cap_set_effective);
+ *
+ * Returns 0 on success and < 0 on error.
+ */
+-asmlinkage long sys_capget(cap_user_header_t header, cap_user_data_t dataptr)
++SYSCALL_DEFINE2(capget, cap_user_header_t, header, cap_user_data_t, dataptr)
+ {
+ int ret = 0;
+ pid_t pid;
+@@ -308,7 +308,7 @@ static inline int cap_set_all(kernel_cap
+ *
+ * Returns 0 on success and < 0 on error.
+ */
+-asmlinkage long sys_capset(cap_user_header_t header, const cap_user_data_t data)
++SYSCALL_DEFINE2(capset, cap_user_header_t, header, const cap_user_data_t, data)
+ {
+ struct __user_cap_data_struct kdata[_KERNEL_CAPABILITY_U32S];
+ unsigned i, tocopy;
+diff -urpN linux-source-2.6.26.orig/kernel/exec_domain.c linux-source-2.6.26/kernel/exec_domain.c
+--- linux-source-2.6.26.orig/kernel/exec_domain.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/kernel/exec_domain.c 2009-01-19 12:00:45.000000000 -0700
+@@ -189,8 +189,7 @@ get_exec_domain_list(char *page)
+ return (len);
+ }
+
+-asmlinkage long
+-sys_personality(u_long personality)
++SYSCALL_DEFINE1(personality, u_long, personality)
+ {
+ u_long old = current->personality;
+
+diff -urpN linux-source-2.6.26.orig/kernel/itimer.c linux-source-2.6.26/kernel/itimer.c
+--- linux-source-2.6.26.orig/kernel/itimer.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/kernel/itimer.c 2009-01-19 12:00:45.000000000 -0700
+@@ -109,7 +109,7 @@ int do_getitimer(int which, struct itime
+ return 0;
+ }
+
+-asmlinkage long sys_getitimer(int which, struct itimerval __user *value)
++SYSCALL_DEFINE2(getitimer, int, which, struct itimerval __user *, value)
+ {
+ int error = -EFAULT;
+ struct itimerval get_buffer;
+diff -urpN linux-source-2.6.26.orig/kernel/signal.c linux-source-2.6.26/kernel/signal.c
+--- linux-source-2.6.26.orig/kernel/signal.c 2009-01-19 11:12:44.000000000 -0700
++++ linux-source-2.6.26/kernel/signal.c 2009-01-19 12:00:45.000000000 -0700
+@@ -2407,8 +2407,7 @@ out:
+
+ #ifdef __ARCH_WANT_SYS_SIGPENDING
+
+-asmlinkage long
+-sys_sigpending(old_sigset_t __user *set)
++SYSCALL_DEFINE1(sigpending, old_sigset_t __user *, set)
+ {
+ return do_sigpending(set, sizeof(*set));
+ }
+@@ -2419,8 +2418,8 @@ sys_sigpending(old_sigset_t __user *set)
+ /* Some platforms have their own version with special arguments others
+ support only sys_rt_sigprocmask. */
+
+-asmlinkage long
+-sys_sigprocmask(int how, old_sigset_t __user *set, old_sigset_t __user *oset)
++SYSCALL_DEFINE3(sigprocmask, int, how, old_sigset_t __user *, set,
++ old_sigset_t __user *, oset)
+ {
+ int error;
+ old_sigset_t old_set, new_set;
+diff -urpN linux-source-2.6.26.orig/kernel/sys.c linux-source-2.6.26/kernel/sys.c
+--- linux-source-2.6.26.orig/kernel/sys.c 2009-01-19 11:59:57.000000000 -0700
++++ linux-source-2.6.26/kernel/sys.c 2009-01-19 12:00:45.000000000 -0700
+@@ -918,7 +918,7 @@ SYSCALL_DEFINE1(times, struct tms __user
+ * Auch. Had to add the 'did_exec' flag to conform completely to POSIX.
+ * LBT 04.03.94
+ */
+-asmlinkage long sys_setpgid(pid_t pid, pid_t pgid)
++SYSCALL_DEFINE2(setpgid, pid_t, pid, pid_t, pgid)
+ {
+ struct task_struct *p;
+ struct task_struct *group_leader = current->group_leader;
+@@ -1054,7 +1054,7 @@ out:
+ return retval;
+ }
+
+-asmlinkage long sys_setsid(void)
++SYSCALL_DEFINE0(setsid)
+ {
+ struct task_struct *group_leader = current->group_leader;
+ struct pid *sid = task_pid(group_leader);
+@@ -1293,7 +1293,7 @@ out:
+ * without another task interfering.
+ */
+
+-asmlinkage long sys_setgroups(int gidsetsize, gid_t __user *grouplist)
++SYSCALL_DEFINE2(setgroups, int, gidsetsize, gid_t __user *, grouplist)
+ {
+ struct group_info *group_info;
+ int retval;
Added: people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0015--CVE-2009-0029-System-call-wrappers-part-05.patch
==============================================================================
--- (empty file)
+++ people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0015--CVE-2009-0029-System-call-wrappers-part-05.patch Tue Jan 20 07:44:38 2009
@@ -0,0 +1,138 @@
+From 362e9c07c7220c0a78c88826fc0d2bf7e4a4bb68 Mon Sep 17 00:00:00 2001
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+Date: Wed, 14 Jan 2009 14:14:07 +0100
+Subject: [PATCH 15/44] [CVE-2009-0029] System call wrappers part 05
+
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+
+commit 362e9c07c7220c0a78c88826fc0d2bf7e4a4bb68 upstream.
+
+Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+
+Adjusted to apply to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+
+diff -urpN linux-source-2.6.26.orig/kernel/itimer.c linux-source-2.6.26/kernel/itimer.c
+--- linux-source-2.6.26.orig/kernel/itimer.c 2009-01-19 12:00:45.000000000 -0700
++++ linux-source-2.6.26/kernel/itimer.c 2009-01-19 12:03:27.000000000 -0700
+@@ -273,9 +273,8 @@ unsigned int alarm_setitimer(unsigned in
+ return it_old.it_value.tv_sec;
+ }
+
+-asmlinkage long sys_setitimer(int which,
+- struct itimerval __user *value,
+- struct itimerval __user *ovalue)
++SYSCALL_DEFINE3(setitimer, int, which, struct itimerval __user *, value,
++ struct itimerval __user *, ovalue)
+ {
+ struct itimerval set_buffer, get_buffer;
+ int error;
+diff -urpN linux-source-2.6.26.orig/kernel/posix-timers.c linux-source-2.6.26/kernel/posix-timers.c
+--- linux-source-2.6.26.orig/kernel/posix-timers.c 2009-01-10 05:42:11.000000000 -0700
++++ linux-source-2.6.26/kernel/posix-timers.c 2009-01-19 12:03:27.000000000 -0700
+@@ -466,10 +466,9 @@ static void release_posix_timer(struct k
+
+ /* Create a POSIX.1b interval timer. */
+
+-asmlinkage long
+-sys_timer_create(const clockid_t which_clock,
+- struct sigevent __user *timer_event_spec,
+- timer_t __user * created_timer_id)
++SYSCALL_DEFINE3(timer_create, const clockid_t, which_clock,
++ struct sigevent __user *, timer_event_spec,
++ timer_t __user *, created_timer_id)
+ {
+ int error = 0;
+ struct k_itimer *new_timer = NULL;
+@@ -685,8 +684,8 @@ common_timer_get(struct k_itimer *timr,
+ }
+
+ /* Get the time remaining on a POSIX.1b interval timer. */
+-asmlinkage long
+-sys_timer_gettime(timer_t timer_id, struct itimerspec __user *setting)
++SYSCALL_DEFINE2(timer_gettime, timer_t, timer_id,
++ struct itimerspec __user *, setting)
+ {
+ struct k_itimer *timr;
+ struct itimerspec cur_setting;
+@@ -715,8 +714,7 @@ sys_timer_gettime(timer_t timer_id, stru
+ * the call back to do_schedule_next_timer(). So all we need to do is
+ * to pick up the frozen overrun.
+ */
+-asmlinkage long
+-sys_timer_getoverrun(timer_t timer_id)
++SYSCALL_DEFINE1(timer_getoverrun, timer_t, timer_id)
+ {
+ struct k_itimer *timr;
+ int overrun;
+@@ -786,10 +784,9 @@ common_timer_set(struct k_itimer *timr,
+ }
+
+ /* Set a POSIX.1b interval timer */
+-asmlinkage long
+-sys_timer_settime(timer_t timer_id, int flags,
+- const struct itimerspec __user *new_setting,
+- struct itimerspec __user *old_setting)
++SYSCALL_DEFINE4(timer_settime, timer_t, timer_id, int, flags,
++ const struct itimerspec __user *, new_setting,
++ struct itimerspec __user *, old_setting)
+ {
+ struct k_itimer *timr;
+ struct itimerspec new_spec, old_spec;
+@@ -842,8 +839,7 @@ static inline int timer_delete_hook(stru
+ }
+
+ /* Delete a POSIX.1b interval timer. */
+-asmlinkage long
+-sys_timer_delete(timer_t timer_id)
++SYSCALL_DEFINE1(timer_delete, timer_t, timer_id)
+ {
+ struct k_itimer *timer;
+ unsigned long flags;
+@@ -935,8 +931,8 @@ int do_posix_clock_nonanosleep(const clo
+ }
+ EXPORT_SYMBOL_GPL(do_posix_clock_nonanosleep);
+
+-asmlinkage long sys_clock_settime(const clockid_t which_clock,
+- const struct timespec __user *tp)
++SYSCALL_DEFINE2(clock_settime, const clockid_t, which_clock,
++ const struct timespec __user *, tp)
+ {
+ struct timespec new_tp;
+
+@@ -948,8 +944,8 @@ asmlinkage long sys_clock_settime(const
+ return CLOCK_DISPATCH(which_clock, clock_set, (which_clock, &new_tp));
+ }
+
+-asmlinkage long
+-sys_clock_gettime(const clockid_t which_clock, struct timespec __user *tp)
++SYSCALL_DEFINE2(clock_gettime, const clockid_t, which_clock,
++ struct timespec __user *,tp)
+ {
+ struct timespec kernel_tp;
+ int error;
+@@ -965,8 +961,8 @@ sys_clock_gettime(const clockid_t which_
+
+ }
+
+-asmlinkage long
+-sys_clock_getres(const clockid_t which_clock, struct timespec __user *tp)
++SYSCALL_DEFINE2(clock_getres, const clockid_t, which_clock,
++ struct timespec __user *, tp)
+ {
+ struct timespec rtn_tp;
+ int error;
+@@ -995,10 +991,9 @@ static int common_nsleep(const clockid_t
+ which_clock);
+ }
+
+-asmlinkage long
+-sys_clock_nanosleep(const clockid_t which_clock, int flags,
+- const struct timespec __user *rqtp,
+- struct timespec __user *rmtp)
++SYSCALL_DEFINE4(clock_nanosleep, const clockid_t, which_clock, int, flags,
++ const struct timespec __user *, rqtp,
++ struct timespec __user *, rmtp)
+ {
+ struct timespec t;
+
Added: people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0016--CVE-2009-0029-System-call-wrappers-part-06.patch
==============================================================================
--- (empty file)
+++ people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0016--CVE-2009-0029-System-call-wrappers-part-06.patch Tue Jan 20 07:44:38 2009
@@ -0,0 +1,113 @@
+From 5add95d4f7cf08f6f62510f19576992912387501 Mon Sep 17 00:00:00 2001
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+Date: Wed, 14 Jan 2009 14:14:08 +0100
+Subject: [PATCH 16/44] [CVE-2009-0029] System call wrappers part 06
+
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+
+commit 5add95d4f7cf08f6f62510f19576992912387501 upstream.
+
+Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+
+Adjusted to apply to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+
+diff -urpN linux-source-2.6.26.orig/kernel/sched.c linux-source-2.6.26/kernel/sched.c
+--- linux-source-2.6.26.orig/kernel/sched.c 2009-01-10 05:42:12.000000000 -0700
++++ linux-source-2.6.26/kernel/sched.c 2009-01-19 12:05:32.000000000 -0700
+@@ -4694,7 +4694,7 @@ int can_nice(const struct task_struct *p
+ * sys_setpriority is a more generic, but much slower function that
+ * does similar things.
+ */
+-asmlinkage long sys_nice(int increment)
++SYSCALL_DEFINE1(nice, int, increment)
+ {
+ long nice, retval;
+
+@@ -4959,8 +4959,8 @@ do_sched_setscheduler(pid_t pid, int pol
+ * @policy: new policy.
+ * @param: structure containing the new RT priority.
+ */
+-asmlinkage long
+-sys_sched_setscheduler(pid_t pid, int policy, struct sched_param __user *param)
++SYSCALL_DEFINE3(sched_setscheduler, pid_t, pid, int, policy,
++ struct sched_param __user *, param)
+ {
+ /* negative values for policy are not valid */
+ if (policy < 0)
+@@ -4974,7 +4974,7 @@ sys_sched_setscheduler(pid_t pid, int po
+ * @pid: the pid in question.
+ * @param: structure containing the new RT priority.
+ */
+-asmlinkage long sys_sched_setparam(pid_t pid, struct sched_param __user *param)
++SYSCALL_DEFINE2(sched_setparam, pid_t, pid, struct sched_param __user *, param)
+ {
+ return do_sched_setscheduler(pid, -1, param);
+ }
+@@ -4983,7 +4983,7 @@ asmlinkage long sys_sched_setparam(pid_t
+ * sys_sched_getscheduler - get the policy (scheduling class) of a thread
+ * @pid: the pid in question.
+ */
+-asmlinkage long sys_sched_getscheduler(pid_t pid)
++SYSCALL_DEFINE1(sched_getscheduler, pid_t, pid)
+ {
+ struct task_struct *p;
+ int retval;
+@@ -5008,7 +5008,7 @@ asmlinkage long sys_sched_getscheduler(p
+ * @pid: the pid in question.
+ * @param: structure containing the RT priority.
+ */
+-asmlinkage long sys_sched_getparam(pid_t pid, struct sched_param __user *param)
++SYSCALL_DEFINE2(sched_getparam, pid_t, pid, struct sched_param __user *, param)
+ {
+ struct sched_param lp;
+ struct task_struct *p;
+@@ -5116,8 +5116,8 @@ static int get_user_cpu_mask(unsigned lo
+ * @len: length in bytes of the bitmask pointed to by user_mask_ptr
+ * @user_mask_ptr: user-space pointer to the new cpu mask
+ */
+-asmlinkage long sys_sched_setaffinity(pid_t pid, unsigned int len,
+- unsigned long __user *user_mask_ptr)
++SYSCALL_DEFINE3(sched_setaffinity, pid_t, pid, unsigned int, len,
++ unsigned long __user *, user_mask_ptr)
+ {
+ cpumask_t new_mask;
+ int retval;
+@@ -5179,8 +5179,8 @@ out_unlock:
+ * @len: length in bytes of the bitmask pointed to by user_mask_ptr
+ * @user_mask_ptr: user-space pointer to hold the current cpu mask
+ */
+-asmlinkage long sys_sched_getaffinity(pid_t pid, unsigned int len,
+- unsigned long __user *user_mask_ptr)
++SYSCALL_DEFINE3(sched_getaffinity, pid_t, pid, unsigned int, len,
++ unsigned long __user *, user_mask_ptr)
+ {
+ int ret;
+ cpumask_t mask;
+@@ -5204,7 +5204,7 @@ asmlinkage long sys_sched_getaffinity(pi
+ * This function yields the current CPU to other tasks. If there are no
+ * other threads running on this CPU then this function will return.
+ */
+-asmlinkage long sys_sched_yield(void)
++SYSCALL_DEFINE0(sched_yield)
+ {
+ struct rq *rq = this_rq_lock();
+
+@@ -5345,7 +5345,7 @@ long __sched io_schedule_timeout(long ti
+ * this syscall returns the maximum rt_priority that can be used
+ * by a given scheduling class.
+ */
+-asmlinkage long sys_sched_get_priority_max(int policy)
++SYSCALL_DEFINE1(sched_get_priority_max, int, policy)
+ {
+ int ret = -EINVAL;
+
+@@ -5370,7 +5370,7 @@ asmlinkage long sys_sched_get_priority_m
+ * this syscall returns the minimum rt_priority that can be used
+ * by a given scheduling class.
+ */
+-asmlinkage long sys_sched_get_priority_min(int policy)
++SYSCALL_DEFINE1(sched_get_priority_min, int, policy)
+ {
+ int ret = -EINVAL;
+
Added: people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0017--CVE-2009-0029-System-call-wrappers-part-07.patch
==============================================================================
--- (empty file)
+++ people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0017--CVE-2009-0029-System-call-wrappers-part-07.patch Tue Jan 20 07:44:38 2009
@@ -0,0 +1,130 @@
+From 754fe8d297bfae7b77f7ce866e2fb0c5fb186506 Mon Sep 17 00:00:00 2001
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+Date: Wed, 14 Jan 2009 14:14:09 +0100
+Subject: [PATCH 17/44] [CVE-2009-0029] System call wrappers part 07
+
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+
+commit 754fe8d297bfae7b77f7ce866e2fb0c5fb186506 upstream.
+
+Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+
+Adjusted to apply to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+
+diff -urpN linux-source-2.6.26.orig/kernel/exit.c linux-source-2.6.26/kernel/exit.c
+--- linux-source-2.6.26.orig/kernel/exit.c 2009-01-19 11:12:44.000000000 -0700
++++ linux-source-2.6.26/kernel/exit.c 2009-01-19 12:07:11.000000000 -0700
+@@ -1121,7 +1121,7 @@ NORET_TYPE void complete_and_exit(struct
+
+ EXPORT_SYMBOL(complete_and_exit);
+
+-asmlinkage long sys_exit(int error_code)
++SYSCALL_DEFINE1(exit, int, error_code)
+ {
+ do_exit((error_code&0xff)<<8);
+ }
+@@ -1162,7 +1162,7 @@ do_group_exit(int exit_code)
+ * wait4()-ing process will get the correct exit code - even if this
+ * thread is not the thread group leader.
+ */
+-asmlinkage long sys_exit_group(int error_code)
++SYSCALL_DEFINE1(exit_group, int, error_code)
+ {
+ do_group_exit((error_code & 0xff) << 8);
+ /* NOTREACHED */
+@@ -1698,8 +1698,8 @@ asmlinkage long sys_waitid(int which, pi
+ return ret;
+ }
+
+-asmlinkage long sys_wait4(pid_t upid, int __user *stat_addr,
+- int options, struct rusage __user *ru)
++SYSCALL_DEFINE4(wait4, pid_t, upid, int __user *, stat_addr,
++ int, options, struct rusage __user *, ru)
+ {
+ struct pid *pid = NULL;
+ enum pid_type type;
+diff -urpN linux-source-2.6.26.orig/kernel/kexec.c linux-source-2.6.26/kernel/kexec.c
+--- linux-source-2.6.26.orig/kernel/kexec.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/kernel/kexec.c 2009-01-19 12:07:11.000000000 -0700
+@@ -921,9 +921,8 @@ struct kimage *kexec_crash_image;
+ */
+ static int kexec_lock;
+
+-asmlinkage long sys_kexec_load(unsigned long entry, unsigned long nr_segments,
+- struct kexec_segment __user *segments,
+- unsigned long flags)
++SYSCALL_DEFINE4(kexec_load, unsigned long, entry, unsigned long, nr_segments,
++ struct kexec_segment __user *, segments, unsigned long, flags)
+ {
+ struct kimage **dest_image, *image;
+ int locked;
+diff -urpN linux-source-2.6.26.orig/kernel/sched.c linux-source-2.6.26/kernel/sched.c
+--- linux-source-2.6.26.orig/kernel/sched.c 2009-01-19 12:05:32.000000000 -0700
++++ linux-source-2.6.26/kernel/sched.c 2009-01-19 12:07:11.000000000 -0700
+@@ -5395,8 +5395,8 @@ SYSCALL_DEFINE1(sched_get_priority_min,
+ * this syscall writes the default timeslice value of a given process
+ * into the user-space timespec buffer. A value of '0' means infinity.
+ */
+-asmlinkage
+-long sys_sched_rr_get_interval(pid_t pid, struct timespec __user *interval)
++SYSCALL_DEFINE4(sched_rr_get_interval, pid_t, pid,
++ struct timespec __user *, interval)
+ {
+ struct task_struct *p;
+ unsigned int time_slice;
+diff -urpN linux-source-2.6.26.orig/kernel/signal.c linux-source-2.6.26/kernel/signal.c
+--- linux-source-2.6.26.orig/kernel/signal.c 2009-01-19 12:00:45.000000000 -0700
++++ linux-source-2.6.26/kernel/signal.c 2009-01-19 12:07:11.000000000 -0700
+@@ -1934,7 +1934,7 @@ EXPORT_SYMBOL(unblock_all_signals);
+ * System call entry points.
+ */
+
+-asmlinkage long sys_restart_syscall(void)
++SYSCALL_DEFINE0(restart_syscall)
+ {
+ struct restart_block *restart = ¤t_thread_info()->restart_block;
+ return restart->fn(restart);
+diff -urpN linux-source-2.6.26.orig/kernel/sys.c linux-source-2.6.26/kernel/sys.c
+--- linux-source-2.6.26.orig/kernel/sys.c 2009-01-19 12:00:45.000000000 -0700
++++ linux-source-2.6.26/kernel/sys.c 2009-01-19 12:07:11.000000000 -0700
+@@ -137,7 +137,7 @@ out:
+ return error;
+ }
+
+-asmlinkage long sys_setpriority(int which, int who, int niceval)
++SYSCALL_DEFINE3(setpriority, int, which, int, who, int, niceval)
+ {
+ struct task_struct *g, *p;
+ struct user_struct *user;
+@@ -201,7 +201,7 @@ out:
+ * has been offset by 20 (ie it returns 40..1 instead of -20..19)
+ * to stay compatible.
+ */
+-asmlinkage long sys_getpriority(int which, int who)
++SYSCALL_DEFINE2(getpriority, int, which, int, who)
+ {
+ struct task_struct *g, *p;
+ struct user_struct *user;
+@@ -367,7 +367,8 @@ EXPORT_SYMBOL_GPL(kernel_power_off);
+ *
+ * reboot doesn't sync: do that yourself before calling this.
+ */
+-asmlinkage long sys_reboot(int magic1, int magic2, unsigned int cmd, void __user * arg)
++SYSCALL_DEFINE4(reboot, int, magic1, int, magic2, unsigned int, cmd,
++ void __user *, arg)
+ {
+ char buffer[256];
+
+diff -urpN linux-source-2.6.26.orig/net/socket.c linux-source-2.6.26/net/socket.c
+--- linux-source-2.6.26.orig/net/socket.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/net/socket.c 2009-01-19 12:07:11.000000000 -0700
+@@ -1758,7 +1758,7 @@ out_put:
+ * Shutdown a socket.
+ */
+
+-asmlinkage long sys_shutdown(int fd, int how)
++SYSCALL_DEFINE2(shutdown, int, fd, int, how)
+ {
+ int err, fput_needed;
+ struct socket *sock;
Added: people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0018--CVE-2009-0029-System-call-wrappers-part-08.patch
==============================================================================
--- (empty file)
+++ people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0018--CVE-2009-0029-System-call-wrappers-part-08.patch Tue Jan 20 07:44:38 2009
@@ -0,0 +1,154 @@
+From 17da2bd90abf428523de0fb98f7075e00e3ed42e Mon Sep 17 00:00:00 2001
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+Date: Wed, 14 Jan 2009 14:14:10 +0100
+Subject: [PATCH 18/44] [CVE-2009-0029] System call wrappers part 08
+
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+
+commit 17da2bd90abf428523de0fb98f7075e00e3ed42e upstream.
+
+Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+
+Backported to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+
+diff -urpN linux-source-2.6.26.orig/kernel/exit.c linux-source-2.6.26/kernel/exit.c
+--- linux-source-2.6.26.orig/kernel/exit.c 2009-01-19 12:07:11.000000000 -0700
++++ linux-source-2.6.26/kernel/exit.c 2009-01-19 12:08:21.000000000 -0700
+@@ -1657,9 +1657,8 @@ end:
+ return retval;
+ }
+
+-asmlinkage long sys_waitid(int which, pid_t upid,
+- struct siginfo __user *infop, int options,
+- struct rusage __user *ru)
++SYSCALL_DEFINE5(waitid, int, which, pid_t, upid, struct siginfo __user *,
++ infop, int, options, struct rusage __user *, ru)
+ {
+ struct pid *pid = NULL;
+ enum pid_type type;
+@@ -1736,7 +1735,7 @@ SYSCALL_DEFINE4(wait4, pid_t, upid, int
+ * sys_waitpid() remains for compatibility. waitpid() should be
+ * implemented by calling sys_wait4() from libc.a.
+ */
+-asmlinkage long sys_waitpid(pid_t pid, int __user *stat_addr, int options)
++SYSCALL_DEFINE3(waitpid, pid_t, pid, int __user *, stat_addr, int, options)
+ {
+ return sys_wait4(pid, stat_addr, options, NULL);
+ }
+diff -urpN linux-source-2.6.26.orig/kernel/fork.c linux-source-2.6.26/kernel/fork.c
+--- linux-source-2.6.26.orig/kernel/fork.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/kernel/fork.c 2009-01-19 12:08:21.000000000 -0700
+@@ -838,7 +838,7 @@ static void copy_flags(unsigned long clo
+ clear_freeze_flag(p);
+ }
+
+-asmlinkage long sys_set_tid_address(int __user *tidptr)
++SYSCALL_DEFINE1(set_tid_address, int __user *, tidptr)
+ {
+ current->clear_child_tid = tidptr;
+
+diff -urpN linux-source-2.6.26.orig/kernel/futex.c linux-source-2.6.26/kernel/futex.c
+--- linux-source-2.6.26.orig/kernel/futex.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/kernel/futex.c 2009-01-19 12:08:21.000000000 -0700
+@@ -2036,9 +2036,9 @@ long do_futex(u32 __user *uaddr, int op,
+ }
+
+
+-asmlinkage long sys_futex(u32 __user *uaddr, int op, u32 val,
+- struct timespec __user *utime, u32 __user *uaddr2,
+- u32 val3)
++SYSCALL_DEFINE6(futex, u32 __user *, uaddr, int, op, u32, val,
++ struct timespec __user *, utime, u32 __user *, uaddr2,
++ u32, val3)
+ {
+ struct timespec ts;
+ ktime_t t, *tp = NULL;
+diff -urpN linux-source-2.6.26.orig/kernel/module.c linux-source-2.6.26/kernel/module.c
+--- linux-source-2.6.26.orig/kernel/module.c 2009-01-10 05:42:12.000000000 -0700
++++ linux-source-2.6.26/kernel/module.c 2009-01-19 12:08:21.000000000 -0700
+@@ -685,8 +685,8 @@ static void wait_for_zero_refcount(struc
+ mutex_lock(&module_mutex);
+ }
+
+-asmlinkage long
+-sys_delete_module(const char __user *name_user, unsigned int flags)
++SYSCALL_DEFINE2(delete_module, const char __user *, name_user,
++ unsigned int, flags)
+ {
+ struct module *mod;
+ char name[MODULE_NAME_LEN];
+@@ -2189,10 +2189,8 @@ static struct module *load_module(void _
+ }
+
+ /* This is where the real work happens */
+-asmlinkage long
+-sys_init_module(void __user *umod,
+- unsigned long len,
+- const char __user *uargs)
++SYSCALL_DEFINE3(init_module, void __user *, umod,
++ unsigned long, len, const char __user *, uargs)
+ {
+ struct module *mod;
+ int ret = 0;
+diff -urpN linux-source-2.6.26.orig/kernel/sched.c linux-source-2.6.26/kernel/sched.c
+--- linux-source-2.6.26.orig/kernel/sched.c 2009-01-19 12:07:11.000000000 -0700
++++ linux-source-2.6.26/kernel/sched.c 2009-01-19 12:08:21.000000000 -0700
+@@ -5395,7 +5395,7 @@ SYSCALL_DEFINE1(sched_get_priority_min,
+ * this syscall writes the default timeslice value of a given process
+ * into the user-space timespec buffer. A value of '0' means infinity.
+ */
+-SYSCALL_DEFINE4(sched_rr_get_interval, pid_t, pid,
++SYSCALL_DEFINE2(sched_rr_get_interval, pid_t, pid,
+ struct timespec __user *, interval)
+ {
+ struct task_struct *p;
+diff -urpN linux-source-2.6.26.orig/kernel/signal.c linux-source-2.6.26/kernel/signal.c
+--- linux-source-2.6.26.orig/kernel/signal.c 2009-01-19 12:07:11.000000000 -0700
++++ linux-source-2.6.26/kernel/signal.c 2009-01-19 12:09:29.000000000 -0700
+@@ -1987,8 +1987,8 @@ int sigprocmask(int how, sigset_t *set,
+ return error;
+ }
+
+-asmlinkage long
+-sys_rt_sigprocmask(int how, sigset_t __user *set, sigset_t __user *oset, size_t sigsetsize)
++SYSCALL_DEFINE4(rt_sigprocmask, int, how, sigset_t __user *, set,
++ sigset_t __user *, oset, size_t, sigsetsize)
+ {
+ int error = -EINVAL;
+ sigset_t old_set, new_set;
+@@ -2047,8 +2047,7 @@ out:
+ return error;
+ }
+
+-asmlinkage long
+-sys_rt_sigpending(sigset_t __user *set, size_t sigsetsize)
++SYSCALL_DEFINE2(rt_sigpending, sigset_t __user *, set, size_t, sigsetsize)
+ {
+ return do_sigpending(set, sigsetsize);
+ }
+@@ -2119,11 +2118,9 @@ int copy_siginfo_to_user(siginfo_t __use
+
+ #endif
+
+-asmlinkage long
+-sys_rt_sigtimedwait(const sigset_t __user *uthese,
+- siginfo_t __user *uinfo,
+- const struct timespec __user *uts,
+- size_t sigsetsize)
++SYSCALL_DEFINE4(rt_sigtimedwait, const sigset_t __user *, uthese,
++ siginfo_t __user *, uinfo, const struct timespec __user *, uts,
++ size_t, sigsetsize)
+ {
+ int ret, sig;
+ sigset_t these;
+@@ -2196,8 +2193,7 @@ sys_rt_sigtimedwait(const sigset_t __use
+ return ret;
+ }
+
+-asmlinkage long
+-sys_kill(int pid, int sig)
++SYSCALL_DEFINE2(kill, int, pid, int, sig)
+ {
+ struct siginfo info;
+
Added: people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0019--CVE-2009-0029-System-call-wrappers-part-09.patch
==============================================================================
--- (empty file)
+++ people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0019--CVE-2009-0029-System-call-wrappers-part-09.patch Tue Jan 20 07:44:38 2009
@@ -0,0 +1,112 @@
+From a5f8fa9e9ba5ef3305e147f41ad6e1e84ac1f0bd Mon Sep 17 00:00:00 2001
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+Date: Wed, 14 Jan 2009 14:14:11 +0100
+Subject: [PATCH 19/44] [CVE-2009-0029] System call wrappers part 09
+
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+
+commit a5f8fa9e9ba5ef3305e147f41ad6e1e84ac1f0bd upstream.
+
+Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+
+Backported to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+
+diff -urpN linux-source-2.6.26.orig/fs/sync.c linux-source-2.6.26/fs/sync.c
+--- linux-source-2.6.26.orig/fs/sync.c 2009-01-19 11:55:54.000000000 -0700
++++ linux-source-2.6.26/fs/sync.c 2009-01-19 12:11:32.000000000 -0700
+@@ -36,7 +36,7 @@ static void do_sync(unsigned long wait)
+ laptop_sync_completion();
+ }
+
+-asmlinkage long sys_sync(void)
++SYSCALL_DEFINE0(sync)
+ {
+ do_sync(1);
+ return 0;
+@@ -118,12 +118,12 @@ static long __do_fsync(unsigned int fd,
+ return ret;
+ }
+
+-asmlinkage long sys_fsync(unsigned int fd)
++SYSCALL_DEFINE1(fsync, unsigned int, fd)
+ {
+ return __do_fsync(fd, 0);
+ }
+
+-asmlinkage long sys_fdatasync(unsigned int fd)
++SYSCALL_DEFINE1(fdatasync, unsigned int, fd)
+ {
+ return __do_fsync(fd, 1);
+ }
+diff -urpN linux-source-2.6.26.orig/kernel/signal.c linux-source-2.6.26/kernel/signal.c
+--- linux-source-2.6.26.orig/kernel/signal.c 2009-01-19 12:09:29.000000000 -0700
++++ linux-source-2.6.26/kernel/signal.c 2009-01-19 12:13:12.000000000 -0700
+@@ -2252,7 +2252,7 @@ static int do_tkill(int tgid, int pid, i
+ * exists but it's not belonging to the target process anymore. This
+ * method solves the problem of threads exiting and PIDs getting reused.
+ */
+-asmlinkage long sys_tgkill(int tgid, int pid, int sig)
++SYSCALL_DEFINE3(tgkill, int, tgid, int, pid, int, sig)
+ {
+ /* This is only valid for single tasks */
+ if (pid <= 0 || tgid <= 0)
+@@ -2264,8 +2264,7 @@ asmlinkage long sys_tgkill(int tgid, int
+ /*
+ * Send a signal to only one task, even if it's a CLONE_THREAD task.
+ */
+-asmlinkage long
+-sys_tkill(int pid, int sig)
++SYSCALL_DEFINE2(tkill, int, pid, int, sig)
+ {
+ /* This is only valid for single tasks */
+ if (pid <= 0)
+@@ -2274,8 +2273,8 @@ sys_tkill(int pid, int sig)
+ return do_tkill(0, pid, sig);
+ }
+
+-asmlinkage long
+-sys_rt_sigqueueinfo(int pid, int sig, siginfo_t __user *uinfo)
++SYSCALL_DEFINE3(rt_sigqueueinfo, int, pid, int, sig,
++ siginfo_t __user *, uinfo)
+ {
+ siginfo_t info;
+
+@@ -2499,15 +2498,13 @@ out:
+ /*
+ * For backwards compatibility. Functionality superseded by sigprocmask.
+ */
+-asmlinkage long
+-sys_sgetmask(void)
++SYSCALL_DEFINE0(sgetmask)
+ {
+ /* SMP safe */
+ return current->blocked.sig[0];
+ }
+
+-asmlinkage long
+-sys_ssetmask(int newmask)
++SYSCALL_DEFINE1(ssetmask, int, newmask)
+ {
+ int old;
+
+@@ -2527,8 +2524,7 @@ sys_ssetmask(int newmask)
+ /*
+ * For backwards compatibility. Functionality superseded by sigaction.
+ */
+-asmlinkage long
+-sys_signal(int sig, __sighandler_t handler)
++SYSCALL_DEFINE2(signal, int, sig, __sighandler_t, handler)
+ {
+ struct k_sigaction new_sa, old_sa;
+ int ret;
+@@ -2545,8 +2541,7 @@ sys_signal(int sig, __sighandler_t handl
+
+ #ifdef __ARCH_WANT_SYS_PAUSE
+
+-asmlinkage long
+-sys_pause(void)
++SYSCALL_DEFINE0(pause)
+ {
+ current->state = TASK_INTERRUPTIBLE;
+ schedule();
Added: people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0020--CVE-2009-0029-System-call-wrappers-part-10.patch
==============================================================================
--- (empty file)
+++ people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0020--CVE-2009-0029-System-call-wrappers-part-10.patch Tue Jan 20 07:44:38 2009
@@ -0,0 +1,121 @@
+From bdc480e3bef6eb0e7071770834cbdda7e30a5436 Mon Sep 17 00:00:00 2001
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+Date: Wed, 14 Jan 2009 14:14:12 +0100
+Subject: [PATCH 20/44] [CVE-2009-0029] System call wrappers part 10
+
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+
+commit bdc480e3bef6eb0e7071770834cbdda7e30a5436 upstream.
+
+Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+
+Backported to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+
+diff -urpN linux-source-2.6.26.orig/fs/buffer.c linux-source-2.6.26/fs/buffer.c
+--- linux-source-2.6.26.orig/fs/buffer.c 2009-01-10 05:42:12.000000000 -0700
++++ linux-source-2.6.26/fs/buffer.c 2009-01-19 12:15:07.000000000 -0700
+@@ -3119,7 +3119,7 @@ void block_sync_page(struct page *page)
+ * Use of bdflush() is deprecated and will be removed in a future kernel.
+ * The `pdflush' kernel threads fully replace bdflush daemons and this call.
+ */
+-asmlinkage long sys_bdflush(int func, long data)
++SYSCALL_DEFINE2(bdflush, int, func, long, data)
+ {
+ static int msg_count;
+
+diff -urpN linux-source-2.6.26.orig/fs/namespace.c linux-source-2.6.26/fs/namespace.c
+--- linux-source-2.6.26.orig/fs/namespace.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/fs/namespace.c 2009-01-19 12:15:07.000000000 -0700
+@@ -1119,7 +1119,7 @@ static int do_umount(struct vfsmount *mn
+ * unixes. Our API is identical to OSF/1 to avoid making a mess of AMD
+ */
+
+-asmlinkage long sys_umount(char __user * name, int flags)
++SYSCALL_DEFINE2(umount, char __user *, name, int, flags)
+ {
+ struct nameidata nd;
+ int retval;
+@@ -1151,7 +1151,7 @@ out:
+ /*
+ * The 2.0 compatible umount. No flags.
+ */
+-asmlinkage long sys_oldumount(char __user * name)
++SYSCALL_DEFINE1(oldumount, char __user *, name)
+ {
+ return sys_umount(name, 0);
+ }
+@@ -2045,9 +2045,8 @@ struct mnt_namespace *copy_mnt_ns(unsign
+ return new_ns;
+ }
+
+-asmlinkage long sys_mount(char __user * dev_name, char __user * dir_name,
+- char __user * type, unsigned long flags,
+- void __user * data)
++SYSCALL_DEFINE5(mount, char __user *, dev_name, char __user *, dir_name,
++ char __user *, type, unsigned long, flags, void __user *, data)
+ {
+ int retval;
+ unsigned long data_page;
+diff -urpN linux-source-2.6.26.orig/fs/open.c linux-source-2.6.26/fs/open.c
+--- linux-source-2.6.26.orig/fs/open.c 2009-01-19 11:55:54.000000000 -0700
++++ linux-source-2.6.26/fs/open.c 2009-01-19 12:17:22.000000000 -0700
+@@ -121,7 +121,7 @@ static int vfs_statfs64(struct dentry *d
+ return 0;
+ }
+
+-asmlinkage long sys_statfs(const char __user * path, struct statfs __user * buf)
++SYSCALL_DEFINE2(statfs, const char __user *, path, struct statfs __user *, buf)
+ {
+ struct nameidata nd;
+ int error;
+@@ -137,8 +137,7 @@ asmlinkage long sys_statfs(const char __
+ return error;
+ }
+
+-
+-asmlinkage long sys_statfs64(const char __user *path, size_t sz, struct statfs64 __user *buf)
++SYSCALL_DEFINE3(statfs64, const char __user *, path, size_t, sz, struct statfs64 __user *, buf)
+ {
+ struct nameidata nd;
+ long error;
+@@ -156,8 +155,7 @@ asmlinkage long sys_statfs64(const char
+ return error;
+ }
+
+-
+-asmlinkage long sys_fstatfs(unsigned int fd, struct statfs __user * buf)
++SYSCALL_DEFINE2(fstatfs, unsigned int, fd, struct statfs __user *, buf)
+ {
+ struct file * file;
+ struct statfs tmp;
+@@ -286,7 +284,7 @@ out:
+ return error;
+ }
+
+-asmlinkage long sys_truncate(const char __user * path, unsigned long length)
++SYSCALL_DEFINE2(truncate, const char __user *, path, unsigned long, length)
+ {
+ /* on 32-bit boxen it will cut the range 2^31--2^32-1 off */
+ return do_sys_truncate(path, (long)length);
+@@ -335,7 +333,7 @@ out:
+ return error;
+ }
+
+-asmlinkage long sys_ftruncate(unsigned int fd, unsigned long length)
++SYSCALL_DEFINE2(ftruncate, unsigned int, fd, unsigned long, length)
+ {
+ long ret = do_sys_ftruncate(fd, length, 1);
+ /* avoid REGPARM breakage on x86: */
+diff -urpN linux-source-2.6.26.orig/fs/stat.c linux-source-2.6.26/fs/stat.c
+--- linux-source-2.6.26.orig/fs/stat.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/fs/stat.c 2009-01-19 12:15:07.000000000 -0700
+@@ -152,7 +152,7 @@ static int cp_old_stat(struct kstat *sta
+ return copy_to_user(statbuf,&tmp,sizeof(tmp)) ? -EFAULT : 0;
+ }
+
+-asmlinkage long sys_stat(char __user * filename, struct __old_kernel_stat __user * statbuf)
++SYSCALL_DEFINE2(stat, char __user *, filename, struct __old_kernel_stat __user *, statbuf)
+ {
+ struct kstat stat;
+ int error = vfs_stat_fd(AT_FDCWD, filename, &stat);
Added: people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0021--CVE-2009-0029-System-call-wrappers-part-11.patch
==============================================================================
--- (empty file)
+++ people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0021--CVE-2009-0029-System-call-wrappers-part-11.patch Tue Jan 20 07:44:38 2009
@@ -0,0 +1,117 @@
+From 257ac264d69017270fbc3cf5536953525db4076c Mon Sep 17 00:00:00 2001
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+Date: Wed, 14 Jan 2009 14:14:13 +0100
+Subject: [PATCH 21/44] [CVE-2009-0029] System call wrappers part 11
+
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+
+commit 257ac264d69017270fbc3cf5536953525db4076c upstream.
+
+Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+
+Adjusted to apply to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+
+diff -urpN linux-source-2.6.26.orig/fs/open.c linux-source-2.6.26/fs/open.c
+--- linux-source-2.6.26.orig/fs/open.c 2009-01-19 12:17:22.000000000 -0700
++++ linux-source-2.6.26/fs/open.c 2009-01-19 12:18:41.000000000 -0700
+@@ -173,7 +173,7 @@ out:
+ return error;
+ }
+
+-asmlinkage long sys_fstatfs64(unsigned int fd, size_t sz, struct statfs64 __user *buf)
++SYSCALL_DEFINE3(fstatfs64, unsigned int, fd, size_t, sz, struct statfs64 __user *, buf)
+ {
+ struct file * file;
+ struct statfs64 tmp;
+diff -urpN linux-source-2.6.26.orig/fs/stat.c linux-source-2.6.26/fs/stat.c
+--- linux-source-2.6.26.orig/fs/stat.c 2009-01-19 12:15:07.000000000 -0700
++++ linux-source-2.6.26/fs/stat.c 2009-01-19 12:18:41.000000000 -0700
+@@ -162,7 +162,8 @@ SYSCALL_DEFINE2(stat, char __user *, fil
+
+ return error;
+ }
+-asmlinkage long sys_lstat(char __user * filename, struct __old_kernel_stat __user * statbuf)
++
++SYSCALL_DEFINE2(lstat, char __user *, filename, struct __old_kernel_stat __user *, statbuf)
+ {
+ struct kstat stat;
+ int error = vfs_lstat_fd(AT_FDCWD, filename, &stat);
+@@ -172,7 +173,8 @@ asmlinkage long sys_lstat(char __user *
+
+ return error;
+ }
+-asmlinkage long sys_fstat(unsigned int fd, struct __old_kernel_stat __user * statbuf)
++
++SYSCALL_DEFINE2(fstat, unsigned int, fd, struct __old_kernel_stat __user *, statbuf)
+ {
+ struct kstat stat;
+ int error = vfs_fstat(fd, &stat);
+@@ -235,7 +237,7 @@ static int cp_new_stat(struct kstat *sta
+ return copy_to_user(statbuf,&tmp,sizeof(tmp)) ? -EFAULT : 0;
+ }
+
+-asmlinkage long sys_newstat(char __user *filename, struct stat __user *statbuf)
++SYSCALL_DEFINE2(newstat, char __user *, filename, struct stat __user *, statbuf)
+ {
+ struct kstat stat;
+ int error = vfs_stat_fd(AT_FDCWD, filename, &stat);
+@@ -246,7 +248,7 @@ asmlinkage long sys_newstat(char __user
+ return error;
+ }
+
+-asmlinkage long sys_newlstat(char __user *filename, struct stat __user *statbuf)
++SYSCALL_DEFINE2(newlstat, char __user *, filename, struct stat __user *, statbuf)
+ {
+ struct kstat stat;
+ int error = vfs_lstat_fd(AT_FDCWD, filename, &stat);
+@@ -280,7 +282,7 @@ out:
+ }
+ #endif
+
+-asmlinkage long sys_newfstat(unsigned int fd, struct stat __user *statbuf)
++SYSCALL_DEFINE2(newfstat, unsigned int, fd, struct stat __user *, statbuf)
+ {
+ struct kstat stat;
+ int error = vfs_fstat(fd, &stat);
+@@ -365,7 +367,7 @@ static long cp_new_stat64(struct kstat *
+ return copy_to_user(statbuf,&tmp,sizeof(tmp)) ? -EFAULT : 0;
+ }
+
+-asmlinkage long sys_stat64(char __user * filename, struct stat64 __user * statbuf)
++SYSCALL_DEFINE2(stat64, char __user *, filename, struct stat64 __user *, statbuf)
+ {
+ struct kstat stat;
+ int error = vfs_stat(filename, &stat);
+@@ -375,7 +377,8 @@ asmlinkage long sys_stat64(char __user *
+
+ return error;
+ }
+-asmlinkage long sys_lstat64(char __user * filename, struct stat64 __user * statbuf)
++
++SYSCALL_DEFINE2(lstat64, char __user *, filename, struct stat64 __user *, statbuf)
+ {
+ struct kstat stat;
+ int error = vfs_lstat(filename, &stat);
+@@ -385,7 +388,8 @@ asmlinkage long sys_lstat64(char __user
+
+ return error;
+ }
+-asmlinkage long sys_fstat64(unsigned long fd, struct stat64 __user * statbuf)
++
++SYSCALL_DEFINE2(fstat64, unsigned long, fd, struct stat64 __user *, statbuf)
+ {
+ struct kstat stat;
+ int error = vfs_fstat(fd, &stat);
+diff -urpN linux-source-2.6.26.orig/fs/super.c linux-source-2.6.26/fs/super.c
+--- linux-source-2.6.26.orig/fs/super.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/fs/super.c 2009-01-19 12:18:41.000000000 -0700
+@@ -533,7 +533,7 @@ rescan:
+ return NULL;
+ }
+
+-asmlinkage long sys_ustat(unsigned dev, struct ustat __user * ubuf)
++SYSCALL_DEFINE2(ustat, unsigned, dev, struct ustat __user *, ubuf)
+ {
+ struct super_block *s;
+ struct ustat tmp;
Added: people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0022--CVE-2009-0029-System-call-wrappers-part-12.patch
==============================================================================
--- (empty file)
+++ people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0022--CVE-2009-0029-System-call-wrappers-part-12.patch Tue Jan 20 07:44:38 2009
@@ -0,0 +1,133 @@
+From 64fd1de3d821659ac0a3004fd5ee1de59e64af30 Mon Sep 17 00:00:00 2001
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+Date: Wed, 14 Jan 2009 14:14:14 +0100
+Subject: [PATCH 22/44] [CVE-2009-0029] System call wrappers part 12
+
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+
+commit 64fd1de3d821659ac0a3004fd5ee1de59e64af30 upstream.
+
+Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+
+Backported to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+
+diff -urpN linux-source-2.6.26.orig/fs/xattr.c linux-source-2.6.26/fs/xattr.c
+--- linux-source-2.6.26.orig/fs/xattr.c 2009-01-19 11:14:17.000000000 -0700
++++ linux-source-2.6.26/fs/xattr.c 2009-01-19 12:22:58.000000000 -0700
+@@ -251,9 +251,9 @@ setxattr(struct dentry *d, const char __
+ return error;
+ }
+
+-asmlinkage long
+-sys_setxattr(const char __user *path, const char __user *name,
+- const void __user *value, size_t size, int flags)
++SYSCALL_DEFINE5(setxattr, const char __user *, path,
++ const char __user *, name, const void __user *, value,
++ size_t, size, int, flags)
+ {
+ struct nameidata nd;
+ int error;
+@@ -270,9 +270,9 @@ sys_setxattr(const char __user *path, co
+ return error;
+ }
+
+-asmlinkage long
+-sys_lsetxattr(const char __user *path, const char __user *name,
+- const void __user *value, size_t size, int flags)
++SYSCALL_DEFINE5(lsetxattr, const char __user *, path,
++ const char __user *, name, const void __user *, value,
++ size_t, size, int, flags)
+ {
+ struct nameidata nd;
+ int error;
+@@ -289,9 +289,8 @@ sys_lsetxattr(const char __user *path, c
+ return error;
+ }
+
+-asmlinkage long
+-sys_fsetxattr(int fd, const char __user *name, const void __user *value,
+- size_t size, int flags)
++SYSCALL_DEFINE5(fsetxattr, int, fd, const char __user *, name,
++ const void __user *,value, size_t, size, int, flags)
+ {
+ struct file *f;
+ struct dentry *dentry;
+@@ -349,9 +348,8 @@ getxattr(struct dentry *d, const char __
+ return error;
+ }
+
+-asmlinkage long
+-sys_getxattr(const char __user *path, const char __user *name,
+- void __user *value, size_t size)
++SYSCALL_DEFINE4(getxattr, const char __user *, path,
++ const char __user *, name, void __user *, value, size_t, size)
+ {
+ struct nameidata nd;
+ ssize_t error;
+@@ -364,9 +362,8 @@ sys_getxattr(const char __user *path, co
+ return error;
+ }
+
+-asmlinkage long
+-sys_lgetxattr(const char __user *path, const char __user *name, void __user *value,
+- size_t size)
++SYSCALL_DEFINE4(lgetxattr, const char __user *, path,
++ const char __user *, name, void __user *, value, size_t, size)
+ {
+ struct nameidata nd;
+ ssize_t error;
+@@ -379,8 +376,8 @@ sys_lgetxattr(const char __user *path, c
+ return error;
+ }
+
+-asmlinkage long
+-sys_fgetxattr(int fd, const char __user *name, void __user *value, size_t size)
++SYSCALL_DEFINE4(fgetxattr, int, fd, const char __user *, name,
++ void __user *, value, size_t, size)
+ {
+ struct file *f;
+ ssize_t error = -EBADF;
+@@ -424,8 +421,8 @@ listxattr(struct dentry *d, char __user
+ return error;
+ }
+
+-asmlinkage long
+-sys_listxattr(const char __user *path, char __user *list, size_t size)
++SYSCALL_DEFINE3(listxattr, const char __user *, path, char __user *, list,
++ size_t, size)
+ {
+ struct nameidata nd;
+ ssize_t error;
+@@ -438,8 +435,8 @@ sys_listxattr(const char __user *path, c
+ return error;
+ }
+
+-asmlinkage long
+-sys_llistxattr(const char __user *path, char __user *list, size_t size)
++SYSCALL_DEFINE3(llistxattr, const char __user *, path, char __user *, list,
++ size_t, size)
+ {
+ struct nameidata nd;
+ ssize_t error;
+@@ -452,8 +449,7 @@ sys_llistxattr(const char __user *path,
+ return error;
+ }
+
+-asmlinkage long
+-sys_flistxattr(int fd, char __user *list, size_t size)
++SYSCALL_DEFINE3(flistxattr, int, fd, char __user *, list, size_t, size)
+ {
+ struct file *f;
+ ssize_t error = -EBADF;
+@@ -485,8 +481,8 @@ removexattr(struct dentry *d, const char
+ return vfs_removexattr(d, kname);
+ }
+
+-asmlinkage long
+-sys_removexattr(const char __user *path, const char __user *name)
++SYSCALL_DEFINE2(removexattr, const char __user *, path,
++ const char __user *, name)
+ {
+ struct nameidata nd;
+ int error;
Added: people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0023--CVE-2009-0029-System-call-wrappers-part-13.patch
==============================================================================
--- (empty file)
+++ people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0023--CVE-2009-0029-System-call-wrappers-part-13.patch Tue Jan 20 07:44:38 2009
@@ -0,0 +1,170 @@
+From 6a6160a7b5c27b3c38651baef92a14fa7072b3c1 Mon Sep 17 00:00:00 2001
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+Date: Wed, 14 Jan 2009 14:14:15 +0100
+Subject: [PATCH 23/44] [CVE-2009-0029] System call wrappers part 13
+
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+
+commit 6a6160a7b5c27b3c38651baef92a14fa7072b3c1 upstream.
+
+Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+
+Backported to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+
+diff -urpN linux-source-2.6.26.orig/fs/xattr.c linux-source-2.6.26/fs/xattr.c
+--- linux-source-2.6.26.orig/fs/xattr.c 2009-01-19 12:22:58.000000000 -0700
++++ linux-source-2.6.26/fs/xattr.c 2009-01-19 12:24:41.000000000 -0700
+@@ -499,8 +499,8 @@ SYSCALL_DEFINE2(removexattr, const char
+ return error;
+ }
+
+-asmlinkage long
+-sys_lremovexattr(const char __user *path, const char __user *name)
++SYSCALL_DEFINE2(lremovexattr, const char __user *, path,
++ const char __user *, name)
+ {
+ struct nameidata nd;
+ int error;
+@@ -517,8 +517,7 @@ sys_lremovexattr(const char __user *path
+ return error;
+ }
+
+-asmlinkage long
+-sys_fremovexattr(int fd, const char __user *name)
++SYSCALL_DEFINE2(fremovexattr, int, fd, const char __user *, name)
+ {
+ struct file *f;
+ struct dentry *dentry;
+diff -urpN linux-source-2.6.26.orig/mm/fremap.c linux-source-2.6.26/mm/fremap.c
+--- linux-source-2.6.26.orig/mm/fremap.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/mm/fremap.c 2009-01-19 12:24:06.000000000 -0700
+@@ -117,8 +117,8 @@ static int populate_range(struct mm_stru
+ * and the vma's default protection is used. Arbitrary protections
+ * might be implemented in the future.
+ */
+-asmlinkage long sys_remap_file_pages(unsigned long start, unsigned long size,
+- unsigned long prot, unsigned long pgoff, unsigned long flags)
++SYSCALL_DEFINE5(remap_file_pages, unsigned long, start, unsigned long, size,
++ unsigned long, prot, unsigned long, pgoff, unsigned long, flags)
+ {
+ struct mm_struct *mm = current->mm;
+ struct address_space *mapping;
+diff -urpN linux-source-2.6.26.orig/mm/mlock.c linux-source-2.6.26/mm/mlock.c
+--- linux-source-2.6.26.orig/mm/mlock.c 2009-01-10 05:42:11.000000000 -0700
++++ linux-source-2.6.26/mm/mlock.c 2009-01-19 12:24:06.000000000 -0700
+@@ -130,7 +130,7 @@ static int do_mlock(unsigned long start,
+ return error;
+ }
+
+-asmlinkage long sys_mlock(unsigned long start, size_t len)
++SYSCALL_DEFINE2(mlock, unsigned long, start, size_t, len)
+ {
+ unsigned long locked;
+ unsigned long lock_limit;
+@@ -156,7 +156,7 @@ asmlinkage long sys_mlock(unsigned long
+ return error;
+ }
+
+-asmlinkage long sys_munlock(unsigned long start, size_t len)
++SYSCALL_DEFINE2(munlock, unsigned long, start, size_t, len)
+ {
+ int ret;
+
+diff -urpN linux-source-2.6.26.orig/mm/mmap.c linux-source-2.6.26/mm/mmap.c
+--- linux-source-2.6.26.orig/mm/mmap.c 2009-01-19 11:12:44.000000000 -0700
++++ linux-source-2.6.26/mm/mmap.c 2009-01-19 12:24:06.000000000 -0700
+@@ -240,7 +240,7 @@ static struct vm_area_struct *remove_vma
+ return next;
+ }
+
+-asmlinkage long sys_brk(unsigned long brk)
++SYSCALL_DEFINE1(brk, unsigned long, brk)
+ {
+ unsigned long rlim, retval;
+ unsigned long newbrk, oldbrk;
+@@ -1915,7 +1915,7 @@ int do_munmap(struct mm_struct *mm, unsi
+
+ EXPORT_SYMBOL(do_munmap);
+
+-asmlinkage long sys_munmap(unsigned long addr, size_t len)
++SYSCALL_DEFINE2(munmap, unsigned long, addr, size_t, len)
+ {
+ int ret;
+ struct mm_struct *mm = current->mm;
+diff -urpN linux-source-2.6.26.orig/mm/mprotect.c linux-source-2.6.26/mm/mprotect.c
+--- linux-source-2.6.26.orig/mm/mprotect.c 2009-01-10 05:42:11.000000000 -0700
++++ linux-source-2.6.26/mm/mprotect.c 2009-01-19 12:24:06.000000000 -0700
+@@ -218,8 +218,8 @@ fail:
+ return error;
+ }
+
+-asmlinkage long
+-sys_mprotect(unsigned long start, size_t len, unsigned long prot)
++SYSCALL_DEFINE3(mprotect, unsigned long, start, size_t, len,
++ unsigned long, prot)
+ {
+ unsigned long vm_flags, nstart, end, tmp, reqprot;
+ struct vm_area_struct *vma, *prev;
+diff -urpN linux-source-2.6.26.orig/mm/mremap.c linux-source-2.6.26/mm/mremap.c
+--- linux-source-2.6.26.orig/mm/mremap.c 2009-01-19 11:12:44.000000000 -0700
++++ linux-source-2.6.26/mm/mremap.c 2009-01-19 12:24:06.000000000 -0700
+@@ -412,9 +412,9 @@ out_nc:
+ return ret;
+ }
+
+-asmlinkage long sys_mremap(unsigned long addr,
+- unsigned long old_len, unsigned long new_len,
+- unsigned long flags, unsigned long new_addr)
++SYSCALL_DEFINE5(mremap, unsigned long, addr, unsigned long, old_len,
++ unsigned long, new_len, unsigned long, flags,
++ unsigned long, new_addr)
+ {
+ unsigned long ret;
+
+diff -urpN linux-source-2.6.26.orig/mm/msync.c linux-source-2.6.26/mm/msync.c
+--- linux-source-2.6.26.orig/mm/msync.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/mm/msync.c 2009-01-19 12:24:06.000000000 -0700
+@@ -28,7 +28,7 @@
+ * So by _not_ starting I/O in MS_ASYNC we provide complete flexibility to
+ * applications.
+ */
+-asmlinkage long sys_msync(unsigned long start, size_t len, int flags)
++SYSCALL_DEFINE3(msync, unsigned long, start, size_t, len, int, flags)
+ {
+ unsigned long end;
+ struct mm_struct *mm = current->mm;
+diff -urpN linux-source-2.6.26.orig/mm/nommu.c linux-source-2.6.26/mm/nommu.c
+--- linux-source-2.6.26.orig/mm/nommu.c 2009-01-19 11:12:44.000000000 -0700
++++ linux-source-2.6.26/mm/nommu.c 2009-01-19 12:24:06.000000000 -0700
+@@ -334,7 +334,7 @@ EXPORT_SYMBOL(vm_insert_page);
+ * to a regular file. in this case, the unmapping will need
+ * to invoke file system routines that need the global lock.
+ */
+-asmlinkage long sys_brk(unsigned long brk)
++SYSCALL_DEFINE1(brk, unsigned long, brk)
+ {
+ struct mm_struct *mm = current->mm;
+
+@@ -1149,7 +1149,7 @@ int do_munmap(struct mm_struct *mm, unsi
+ }
+ EXPORT_SYMBOL(do_munmap);
+
+-asmlinkage long sys_munmap(unsigned long addr, size_t len)
++SYSCALL_DEFINE2(munmap, unsigned long, addr, size_t, len)
+ {
+ int ret;
+ struct mm_struct *mm = current->mm;
+@@ -1240,9 +1240,9 @@ unsigned long do_mremap(unsigned long ad
+ }
+ EXPORT_SYMBOL(do_mremap);
+
+-asmlinkage unsigned long sys_mremap(unsigned long addr,
+- unsigned long old_len, unsigned long new_len,
+- unsigned long flags, unsigned long new_addr)
++SYSCALL_DEFINE5(mremap, unsigned long, addr, unsigned long, old_len,
++ unsigned long, new_len, unsigned long, flags,
++ unsigned long, new_addr)
+ {
+ unsigned long ret;
+
Added: people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0024--CVE-2009-0029-System-call-wrappers-part-14.patch
==============================================================================
--- (empty file)
+++ people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0024--CVE-2009-0029-System-call-wrappers-part-14.patch Tue Jan 20 07:44:38 2009
@@ -0,0 +1,126 @@
+From 3480b25743cb7404928d57efeaa3d085708b04c2 Mon Sep 17 00:00:00 2001
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+Date: Wed, 14 Jan 2009 14:14:16 +0100
+Subject: [PATCH 24/44] [CVE-2009-0029] System call wrappers part 14
+
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+
+commit 3480b25743cb7404928d57efeaa3d085708b04c2 upstream.
+
+Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+
+Adjusted to apply to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+
+diff -urpN linux-source-2.6.26.orig/fs/namei.c linux-source-2.6.26/fs/namei.c
+--- linux-source-2.6.26.orig/fs/namei.c 2009-01-10 05:42:11.000000000 -0700
++++ linux-source-2.6.26/fs/namei.c 2009-01-19 12:25:45.000000000 -0700
+@@ -2138,7 +2138,7 @@ out:
+ return error;
+ }
+
+-asmlinkage long sys_mknod(const char __user *filename, int mode, unsigned dev)
++SYSCALL_DEFINE3(mknod, const char __user *, filename, int, mode, unsigned, dev)
+ {
+ return sys_mknodat(AT_FDCWD, filename, mode, dev);
+ }
+@@ -2419,7 +2419,7 @@ asmlinkage long sys_unlinkat(int dfd, co
+ return do_unlinkat(dfd, pathname);
+ }
+
+-asmlinkage long sys_unlink(const char __user *pathname)
++SYSCALL_DEFINE1(unlink, const char __user *, pathname)
+ {
+ return do_unlinkat(AT_FDCWD, pathname);
+ }
+@@ -2487,7 +2487,7 @@ out_putname:
+ return error;
+ }
+
+-asmlinkage long sys_symlink(const char __user *oldname, const char __user *newname)
++SYSCALL_DEFINE2(symlink, const char __user *, oldname, const char __user *, newname)
+ {
+ return sys_symlinkat(oldname, AT_FDCWD, newname);
+ }
+@@ -2589,7 +2589,7 @@ exit:
+ return error;
+ }
+
+-asmlinkage long sys_link(const char __user *oldname, const char __user *newname)
++SYSCALL_DEFINE2(link, const char __user *, oldname, const char __user *, newname)
+ {
+ return sys_linkat(AT_FDCWD, oldname, AT_FDCWD, newname, 0);
+ }
+diff -urpN linux-source-2.6.26.orig/fs/namespace.c linux-source-2.6.26/fs/namespace.c
+--- linux-source-2.6.26.orig/fs/namespace.c 2009-01-19 12:15:07.000000000 -0700
++++ linux-source-2.6.26/fs/namespace.c 2009-01-19 12:25:45.000000000 -0700
+@@ -2171,8 +2171,8 @@ static void chroot_fs_refs(struct path *
+ * though, so you may need to say mount --bind /nfs/my_root /nfs/my_root
+ * first.
+ */
+-asmlinkage long sys_pivot_root(const char __user * new_root,
+- const char __user * put_old)
++SYSCALL_DEFINE2(pivot_root, const char __user *, new_root,
++ const char __user *, put_old)
+ {
+ struct vfsmount *tmp;
+ struct nameidata new_nd, old_nd;
+diff -urpN linux-source-2.6.26.orig/fs/open.c linux-source-2.6.26/fs/open.c
+--- linux-source-2.6.26.orig/fs/open.c 2009-01-19 12:18:41.000000000 -0700
++++ linux-source-2.6.26/fs/open.c 2009-01-19 12:25:45.000000000 -0700
+@@ -562,7 +562,7 @@ out:
+ return error;
+ }
+
+-asmlinkage long sys_chroot(const char __user * filename)
++SYSCALL_DEFINE1(chroot, const char __user *, filename)
+ {
+ struct nameidata nd;
+ int error;
+diff -urpN linux-source-2.6.26.orig/mm/madvise.c linux-source-2.6.26/mm/madvise.c
+--- linux-source-2.6.26.orig/mm/madvise.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/mm/madvise.c 2009-01-19 12:25:45.000000000 -0700
+@@ -281,7 +281,7 @@ madvise_vma(struct vm_area_struct *vma,
+ * -EBADF - map exists, but area maps something that isn't a file.
+ * -EAGAIN - a kernel resource was temporarily unavailable.
+ */
+-asmlinkage long sys_madvise(unsigned long start, size_t len_in, int behavior)
++SYSCALL_DEFINE3(madvise, unsigned long, start, size_t, len_in, int, behavior)
+ {
+ unsigned long end, tmp;
+ struct vm_area_struct * vma, *prev;
+diff -urpN linux-source-2.6.26.orig/mm/mincore.c linux-source-2.6.26/mm/mincore.c
+--- linux-source-2.6.26.orig/mm/mincore.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/mm/mincore.c 2009-01-19 12:25:45.000000000 -0700
+@@ -177,8 +177,8 @@ none_mapped:
+ * mapped
+ * -EAGAIN - A kernel resource was temporarily unavailable.
+ */
+-asmlinkage long sys_mincore(unsigned long start, size_t len,
+- unsigned char __user * vec)
++SYSCALL_DEFINE3(mincore, unsigned long, start, size_t, len,
++ unsigned char __user *, vec)
+ {
+ long retval;
+ unsigned long pages;
+diff -urpN linux-source-2.6.26.orig/mm/mlock.c linux-source-2.6.26/mm/mlock.c
+--- linux-source-2.6.26.orig/mm/mlock.c 2009-01-19 12:24:06.000000000 -0700
++++ linux-source-2.6.26/mm/mlock.c 2009-01-19 12:25:45.000000000 -0700
+@@ -193,7 +193,7 @@ out:
+ return 0;
+ }
+
+-asmlinkage long sys_mlockall(int flags)
++SYSCALL_DEFINE1(mlockall, int, flags)
+ {
+ unsigned long lock_limit;
+ int ret = -EINVAL;
+@@ -219,7 +219,7 @@ out:
+ return ret;
+ }
+
+-asmlinkage long sys_munlockall(void)
++SYSCALL_DEFINE0(munlockall)
+ {
+ int ret;
+
Added: people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0025--CVE-2009-0029-System-call-wrappers-part-15.patch
==============================================================================
--- (empty file)
+++ people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0025--CVE-2009-0029-System-call-wrappers-part-15.patch Tue Jan 20 07:44:38 2009
@@ -0,0 +1,99 @@
+From a26eab2400f0477bfac0255600552394855016f7 Mon Sep 17 00:00:00 2001
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+Date: Wed, 14 Jan 2009 14:14:17 +0100
+Subject: [PATCH 25/44] [CVE-2009-0029] System call wrappers part 15
+
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+
+commit a26eab2400f0477bfac0255600552394855016f7 upstream.
+
+Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+
+Backported to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+
+diff -urpN linux-source-2.6.26.orig/fs/fcntl.c linux-source-2.6.26/fs/fcntl.c
+--- linux-source-2.6.26.orig/fs/fcntl.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/fs/fcntl.c 2009-01-19 12:26:42.000000000 -0700
+@@ -126,7 +126,7 @@ static int dupfd(struct file *file, unsi
+ return fd;
+ }
+
+-asmlinkage long sys_dup2(unsigned int oldfd, unsigned int newfd)
++SYSCALL_DEFINE2(dup2, unsigned int, oldfd, unsigned int, newfd)
+ {
+ int err = -EBADF;
+ struct file * file, *tofree;
+@@ -182,7 +182,7 @@ out_fput:
+ goto out;
+ }
+
+-asmlinkage long sys_dup(unsigned int fildes)
++SYSCALL_DEFINE1(dup, unsigned int, fildes)
+ {
+ int ret = -EBADF;
+ struct file * file = fget(fildes);
+@@ -376,7 +376,7 @@ static long do_fcntl(int fd, unsigned in
+ return err;
+ }
+
+-asmlinkage long sys_fcntl(unsigned int fd, unsigned int cmd, unsigned long arg)
++SYSCALL_DEFINE3(fcntl, unsigned int, fd, unsigned int, cmd, unsigned long, arg)
+ {
+ struct file *filp;
+ long err = -EBADF;
+@@ -399,7 +399,8 @@ out:
+ }
+
+ #if BITS_PER_LONG == 32
+-asmlinkage long sys_fcntl64(unsigned int fd, unsigned int cmd, unsigned long arg)
++SYSCALL_DEFINE3(fcntl64, unsigned int, fd, unsigned int, cmd,
++ unsigned long, arg)
+ {
+ struct file * filp;
+ long err;
+diff -urpN linux-source-2.6.26.orig/fs/ioctl.c linux-source-2.6.26/fs/ioctl.c
+--- linux-source-2.6.26.orig/fs/ioctl.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/fs/ioctl.c 2009-01-19 12:26:42.000000000 -0700
+@@ -191,7 +191,7 @@ int do_vfs_ioctl(struct file *filp, unsi
+ return error;
+ }
+
+-asmlinkage long sys_ioctl(unsigned int fd, unsigned int cmd, unsigned long arg)
++SYSCALL_DEFINE3(ioctl, unsigned int, fd, unsigned int, cmd, unsigned long, arg)
+ {
+ struct file *filp;
+ int error = -EBADF;
+diff -urpN linux-source-2.6.26.orig/fs/namei.c linux-source-2.6.26/fs/namei.c
+--- linux-source-2.6.26.orig/fs/namei.c 2009-01-19 12:25:45.000000000 -0700
++++ linux-source-2.6.26/fs/namei.c 2009-01-19 12:26:42.000000000 -0700
+@@ -2841,7 +2841,7 @@ asmlinkage long sys_renameat(int olddfd,
+ return error;
+ }
+
+-asmlinkage long sys_rename(const char __user *oldname, const char __user *newname)
++SYSCALL_DEFINE2(rename, const char __user *, oldname, const char __user *, newname)
+ {
+ return sys_renameat(AT_FDCWD, oldname, AT_FDCWD, newname);
+ }
+diff -urpN linux-source-2.6.26.orig/fs/open.c linux-source-2.6.26/fs/open.c
+--- linux-source-2.6.26.orig/fs/open.c 2009-01-19 12:25:45.000000000 -0700
++++ linux-source-2.6.26/fs/open.c 2009-01-19 12:26:42.000000000 -0700
+@@ -588,7 +588,7 @@ out:
+ return error;
+ }
+
+-asmlinkage long sys_fchmod(unsigned int fd, mode_t mode)
++SYSCALL_DEFINE2(fchmod, unsigned int, fd, mode_t, mode)
+ {
+ struct inode * inode;
+ struct dentry * dentry;
+@@ -664,7 +664,7 @@ out:
+ return error;
+ }
+
+-asmlinkage long sys_chmod(const char __user *filename, mode_t mode)
++SYSCALL_DEFINE2(chmod, const char __user *, filename, mode_t, mode)
+ {
+ return sys_fchmodat(AT_FDCWD, filename, mode);
+ }
Added: people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0026--CVE-2009-0029-System-call-wrappers-part-16.patch
==============================================================================
--- (empty file)
+++ people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0026--CVE-2009-0029-System-call-wrappers-part-16.patch Tue Jan 20 07:44:38 2009
@@ -0,0 +1,133 @@
+From 002c8976ee537724b20a5e179d9b349309438836 Mon Sep 17 00:00:00 2001
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+Date: Wed, 14 Jan 2009 14:14:18 +0100
+Subject: [PATCH 26/44] [CVE-2009-0029] System call wrappers part 16
+
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+
+commit 002c8976ee537724b20a5e179d9b349309438836 upstream.
+
+Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+
+Adjusted to apply to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+
+diff -urpN linux-source-2.6.26.orig/fs/aio.c linux-source-2.6.26/fs/aio.c
+--- linux-source-2.6.26.orig/fs/aio.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/fs/aio.c 2009-01-19 12:30:49.000000000 -0700
+@@ -1260,7 +1260,7 @@ static void io_destroy(struct kioctx *io
+ * pointer is passed for ctxp. Will fail with -ENOSYS if not
+ * implemented.
+ */
+-asmlinkage long sys_io_setup(unsigned nr_events, aio_context_t __user *ctxp)
++SYSCALL_DEFINE2(io_setup, unsigned, nr_events, aio_context_t __user *, ctxp)
+ {
+ struct kioctx *ioctx = NULL;
+ unsigned long ctx;
+@@ -1298,7 +1298,7 @@ out:
+ * implemented. May fail with -EFAULT if the context pointed to
+ * is invalid.
+ */
+-asmlinkage long sys_io_destroy(aio_context_t ctx)
++SYSCALL_DEFINE1(io_destroy, aio_context_t, ctx)
+ {
+ struct kioctx *ioctx = lookup_ioctx(ctx);
+ if (likely(NULL != ioctx)) {
+@@ -1652,8 +1652,8 @@ out_put_req:
+ * are available to queue any iocbs. Will return 0 if nr is 0. Will
+ * fail with -ENOSYS if not implemented.
+ */
+-asmlinkage long sys_io_submit(aio_context_t ctx_id, long nr,
+- struct iocb __user * __user *iocbpp)
++SYSCALL_DEFINE3(io_submit, aio_context_t, ctx_id, long, nr,
++ struct iocb __user * __user *, iocbpp)
+ {
+ struct kioctx *ctx;
+ long ret = 0;
+@@ -1727,8 +1727,8 @@ static struct kiocb *lookup_kiocb(struct
+ * invalid. May fail with -EAGAIN if the iocb specified was not
+ * cancelled. Will fail with -ENOSYS if not implemented.
+ */
+-asmlinkage long sys_io_cancel(aio_context_t ctx_id, struct iocb __user *iocb,
+- struct io_event __user *result)
++SYSCALL_DEFINE3(io_cancel, aio_context_t, ctx_id, struct iocb __user *, iocb,
++ struct io_event __user *, result)
+ {
+ int (*cancel)(struct kiocb *iocb, struct io_event *res);
+ struct kioctx *ctx;
+@@ -1789,11 +1789,11 @@ asmlinkage long sys_io_cancel(aio_contex
+ * will be updated if not NULL and the operation blocks. Will fail
+ * with -ENOSYS if not implemented.
+ */
+-asmlinkage long sys_io_getevents(aio_context_t ctx_id,
+- long min_nr,
+- long nr,
+- struct io_event __user *events,
+- struct timespec __user *timeout)
++SYSCALL_DEFINE5(io_getevents, aio_context_t, ctx_id,
++ long, min_nr,
++ long, nr,
++ struct io_event __user *, events,
++ struct timespec __user *, timeout)
+ {
+ struct kioctx *ioctx = lookup_ioctx(ctx_id);
+ long ret = -EINVAL;
+diff -urpN linux-source-2.6.26.orig/fs/locks.c linux-source-2.6.26/fs/locks.c
+--- linux-source-2.6.26.orig/fs/locks.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/fs/locks.c 2009-01-19 12:30:49.000000000 -0700
+@@ -1564,7 +1564,7 @@ EXPORT_SYMBOL(flock_lock_file_wait);
+ * %LOCK_MAND can be combined with %LOCK_READ or %LOCK_WRITE to allow other
+ * processes read and write access respectively.
+ */
+-asmlinkage long sys_flock(unsigned int fd, unsigned int cmd)
++SYSCALL_DEFINE2(flock, unsigned int, fd, unsigned int, cmd)
+ {
+ struct file *filp;
+ struct file_lock *lock;
+diff -urpN linux-source-2.6.26.orig/fs/open.c linux-source-2.6.26/fs/open.c
+--- linux-source-2.6.26.orig/fs/open.c 2009-01-19 12:26:42.000000000 -0700
++++ linux-source-2.6.26/fs/open.c 2009-01-19 12:30:49.000000000 -0700
+@@ -1155,7 +1155,7 @@ asmlinkage long sys_openat(int dfd, cons
+ * For backward compatibility? Maybe this should be moved
+ * into arch/i386 instead?
+ */
+-asmlinkage long sys_creat(const char __user * pathname, int mode)
++SYSCALL_DEFINE2(creat, const char __user *, pathname, int, mode)
+ {
+ return sys_open(pathname, O_CREAT | O_WRONLY | O_TRUNC, mode);
+ }
+diff -urpN linux-source-2.6.26.orig/fs/read_write.c linux-source-2.6.26/fs/read_write.c
+--- linux-source-2.6.26.orig/fs/read_write.c 2009-01-19 11:55:54.000000000 -0700
++++ linux-source-2.6.26/fs/read_write.c 2009-01-19 12:30:49.000000000 -0700
+@@ -809,7 +809,7 @@ out:
+ return retval;
+ }
+
+-asmlinkage long sys_sendfile(int out_fd, int in_fd, off_t __user *offset, size_t count)
++SYSCALL_DEFINE4(sendfile, int, out_fd, int, in_fd, off_t __user *, offset, size_t, count)
+ {
+ loff_t pos;
+ off_t off;
+@@ -828,7 +828,7 @@ asmlinkage long sys_sendfile(int out_fd,
+ return do_sendfile(out_fd, in_fd, NULL, count, 0);
+ }
+
+-asmlinkage long sys_sendfile64(int out_fd, int in_fd, loff_t __user *offset, size_t count)
++SYSCALL_DEFINE4(sendfile64, int, out_fd, int, in_fd, loff_t __user *, offset, size_t, count)
+ {
+ loff_t pos;
+ ssize_t ret;
+diff -urpN linux-source-2.6.26.orig/fs/stat.c linux-source-2.6.26/fs/stat.c
+--- linux-source-2.6.26.orig/fs/stat.c 2009-01-19 12:18:41.000000000 -0700
++++ linux-source-2.6.26/fs/stat.c 2009-01-19 12:30:49.000000000 -0700
+@@ -320,8 +320,8 @@ asmlinkage long sys_readlinkat(int dfd,
+ return error;
+ }
+
+-asmlinkage long sys_readlink(const char __user *path, char __user *buf,
+- int bufsiz)
++SYSCALL_DEFINE3(readlink, const char __user *, path, char __user *, buf,
++ int, bufsiz)
+ {
+ return sys_readlinkat(AT_FDCWD, path, buf, bufsiz);
+ }
Added: people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0027--CVE-2009-0029-System-call-wrappers-part-17.patch
==============================================================================
--- (empty file)
+++ people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0027--CVE-2009-0029-System-call-wrappers-part-17.patch Tue Jan 20 07:44:38 2009
@@ -0,0 +1,118 @@
+From ca013e945b1ba5828b151ee646946f1297b67a4c Mon Sep 17 00:00:00 2001
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+Date: Wed, 14 Jan 2009 14:14:19 +0100
+Subject: [PATCH 27/44] [CVE-2009-0029] System call wrappers part 17
+
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+
+commit ca013e945b1ba5828b151ee646946f1297b67a4c upstream.
+
+Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+
+Adjusted to apply to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+
+diff -urpN linux-source-2.6.26.orig/fs/open.c linux-source-2.6.26/fs/open.c
+--- linux-source-2.6.26.orig/fs/open.c 2009-01-19 12:30:49.000000000 -0700
++++ linux-source-2.6.26/fs/open.c 2009-01-19 12:31:38.000000000 -0700
+@@ -509,7 +509,7 @@ out:
+ return res;
+ }
+
+-asmlinkage long sys_access(const char __user *filename, int mode)
++SYSCALL_DEFINE2(access, const char __user *, filename, int, mode)
+ {
+ return sys_faccessat(AT_FDCWD, filename, mode);
+ }
+@@ -702,7 +702,7 @@ out:
+ return error;
+ }
+
+-asmlinkage long sys_chown(const char __user * filename, uid_t user, gid_t group)
++SYSCALL_DEFINE3(chown, const char __user *, filename, uid_t, user, gid_t, group)
+ {
+ struct nameidata nd;
+ int error;
+@@ -746,7 +746,7 @@ out:
+ return error;
+ }
+
+-asmlinkage long sys_lchown(const char __user * filename, uid_t user, gid_t group)
++SYSCALL_DEFINE3(lchown, const char __user *, filename, uid_t, user, gid_t, group)
+ {
+ struct nameidata nd;
+ int error;
+@@ -765,8 +765,7 @@ out:
+ return error;
+ }
+
+-
+-asmlinkage long sys_fchown(unsigned int fd, uid_t user, gid_t group)
++SYSCALL_DEFINE3(fchown, unsigned int, fd, uid_t, user, gid_t, group)
+ {
+ struct file * file;
+ int error = -EBADF;
+@@ -1122,7 +1121,7 @@ long do_sys_open(int dfd, const char __u
+ return fd;
+ }
+
+-asmlinkage long sys_open(const char __user *filename, int flags, int mode)
++SYSCALL_DEFINE3(open, const char __user *, filename, int, flags, int, mode)
+ {
+ long ret;
+
+@@ -1191,7 +1190,7 @@ EXPORT_SYMBOL(filp_close);
+ * releasing the fd. This ensures that one clone task can't release
+ * an fd while another clone is opening it.
+ */
+-asmlinkage long sys_close(unsigned int fd)
++SYSCALL_DEFINE1(close, unsigned int, fd)
+ {
+ struct file * filp;
+ struct files_struct *files = current->files;
+@@ -1224,14 +1223,13 @@ out_unlock:
+ spin_unlock(&files->file_lock);
+ return -EBADF;
+ }
+-
+ EXPORT_SYMBOL(sys_close);
+
+ /*
+ * This routine simulates a hangup on the tty, to arrange that users
+ * are given clean terminals at login time.
+ */
+-asmlinkage long sys_vhangup(void)
++SYSCALL_DEFINE0(vhangup)
+ {
+ if (capable(CAP_SYS_TTY_CONFIG)) {
+ /* XXX: this needs locking */
+diff -urpN linux-source-2.6.26.orig/kernel/uid16.c linux-source-2.6.26/kernel/uid16.c
+--- linux-source-2.6.26.orig/kernel/uid16.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/kernel/uid16.c 2009-01-19 12:31:38.000000000 -0700
+@@ -17,7 +17,7 @@
+
+ #include <asm/uaccess.h>
+
+-asmlinkage long sys_chown16(const char __user * filename, old_uid_t user, old_gid_t group)
++SYSCALL_DEFINE3(chown16, const char __user *, filename, old_uid_t, user, old_gid_t, group)
+ {
+ long ret = sys_chown(filename, low2highuid(user), low2highgid(group));
+ /* avoid REGPARM breakage on x86: */
+@@ -25,7 +25,7 @@ asmlinkage long sys_chown16(const char _
+ return ret;
+ }
+
+-asmlinkage long sys_lchown16(const char __user * filename, old_uid_t user, old_gid_t group)
++SYSCALL_DEFINE3(lchown16, const char __user *, filename, old_uid_t, user, old_gid_t, group)
+ {
+ long ret = sys_lchown(filename, low2highuid(user), low2highgid(group));
+ /* avoid REGPARM breakage on x86: */
+@@ -33,7 +33,7 @@ asmlinkage long sys_lchown16(const char
+ return ret;
+ }
+
+-asmlinkage long sys_fchown16(unsigned int fd, old_uid_t user, old_gid_t group)
++SYSCALL_DEFINE3(fchown16, unsigned int, fd, old_uid_t, user, old_gid_t, group)
+ {
+ long ret = sys_fchown(fd, low2highuid(user), low2highgid(group));
+ /* avoid REGPARM breakage on x86: */
Added: people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0028--CVE-2009-0029-System-call-wrappers-part-18.patch
==============================================================================
--- (empty file)
+++ people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0028--CVE-2009-0029-System-call-wrappers-part-18.patch Tue Jan 20 07:44:38 2009
@@ -0,0 +1,108 @@
+From a6b42e83f249aad723589b2bdf6d1dfb2b0997c8 Mon Sep 17 00:00:00 2001
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+Date: Wed, 14 Jan 2009 14:14:20 +0100
+Subject: [PATCH 28/44] [CVE-2009-0029] System call wrappers part 18
+
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+
+commit a6b42e83f249aad723589b2bdf6d1dfb2b0997c8 upstream.
+
+Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+---
+ kernel/uid16.c | 21 +++++++++++----------
+ 1 file changed, 11 insertions(+), 10 deletions(-)
+
+--- a/kernel/uid16.c
++++ b/kernel/uid16.c
+@@ -41,7 +41,7 @@ SYSCALL_DEFINE3(fchown16, unsigned int,
+ return ret;
+ }
+
+-asmlinkage long sys_setregid16(old_gid_t rgid, old_gid_t egid)
++SYSCALL_DEFINE2(setregid16, old_gid_t, rgid, old_gid_t, egid)
+ {
+ long ret = sys_setregid(low2highgid(rgid), low2highgid(egid));
+ /* avoid REGPARM breakage on x86: */
+@@ -49,7 +49,7 @@ asmlinkage long sys_setregid16(old_gid_t
+ return ret;
+ }
+
+-asmlinkage long sys_setgid16(old_gid_t gid)
++SYSCALL_DEFINE1(setgid16, old_gid_t, gid)
+ {
+ long ret = sys_setgid(low2highgid(gid));
+ /* avoid REGPARM breakage on x86: */
+@@ -57,7 +57,7 @@ asmlinkage long sys_setgid16(old_gid_t g
+ return ret;
+ }
+
+-asmlinkage long sys_setreuid16(old_uid_t ruid, old_uid_t euid)
++SYSCALL_DEFINE2(setreuid16, old_uid_t, ruid, old_uid_t, euid)
+ {
+ long ret = sys_setreuid(low2highuid(ruid), low2highuid(euid));
+ /* avoid REGPARM breakage on x86: */
+@@ -65,7 +65,7 @@ asmlinkage long sys_setreuid16(old_uid_t
+ return ret;
+ }
+
+-asmlinkage long sys_setuid16(old_uid_t uid)
++SYSCALL_DEFINE1(setuid16, old_uid_t, uid)
+ {
+ long ret = sys_setuid(low2highuid(uid));
+ /* avoid REGPARM breakage on x86: */
+@@ -73,7 +73,7 @@ asmlinkage long sys_setuid16(old_uid_t u
+ return ret;
+ }
+
+-asmlinkage long sys_setresuid16(old_uid_t ruid, old_uid_t euid, old_uid_t suid)
++SYSCALL_DEFINE3(setresuid16, old_uid_t, ruid, old_uid_t, euid, old_uid_t, suid)
+ {
+ long ret = sys_setresuid(low2highuid(ruid), low2highuid(euid),
+ low2highuid(suid));
+@@ -82,7 +82,7 @@ asmlinkage long sys_setresuid16(old_uid_
+ return ret;
+ }
+
+-asmlinkage long sys_getresuid16(old_uid_t __user *ruid, old_uid_t __user *euid, old_uid_t __user *suid)
++SYSCALL_DEFINE3(getresuid16, old_uid_t __user *, ruid, old_uid_t __user *, euid, old_uid_t __user *, suid)
+ {
+ int retval;
+
+@@ -93,7 +93,7 @@ asmlinkage long sys_getresuid16(old_uid_
+ return retval;
+ }
+
+-asmlinkage long sys_setresgid16(old_gid_t rgid, old_gid_t egid, old_gid_t sgid)
++SYSCALL_DEFINE3(setresgid16, old_gid_t, rgid, old_gid_t, egid, old_gid_t, sgid)
+ {
+ long ret = sys_setresgid(low2highgid(rgid), low2highgid(egid),
+ low2highgid(sgid));
+@@ -102,7 +102,8 @@ asmlinkage long sys_setresgid16(old_gid_
+ return ret;
+ }
+
+-asmlinkage long sys_getresgid16(old_gid_t __user *rgid, old_gid_t __user *egid, old_gid_t __user *sgid)
++
++SYSCALL_DEFINE3(getresgid16, old_gid_t __user *, rgid, old_gid_t __user *, egid, old_gid_t __user *, sgid)
+ {
+ int retval;
+
+@@ -113,7 +114,7 @@ asmlinkage long sys_getresgid16(old_gid_
+ return retval;
+ }
+
+-asmlinkage long sys_setfsuid16(old_uid_t uid)
++SYSCALL_DEFINE1(setfsuid16, old_uid_t, uid)
+ {
+ long ret = sys_setfsuid(low2highuid(uid));
+ /* avoid REGPARM breakage on x86: */
+@@ -121,7 +122,7 @@ asmlinkage long sys_setfsuid16(old_uid_t
+ return ret;
+ }
+
+-asmlinkage long sys_setfsgid16(old_gid_t gid)
++SYSCALL_DEFINE1(setfsgid16, old_gid_t, gid)
+ {
+ long ret = sys_setfsgid(low2highgid(gid));
+ /* avoid REGPARM breakage on x86: */
Added: people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0029--CVE-2009-0029-System-call-wrappers-part-19.patch
==============================================================================
--- (empty file)
+++ people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0029--CVE-2009-0029-System-call-wrappers-part-19.patch Tue Jan 20 07:44:38 2009
@@ -0,0 +1,109 @@
+From 003d7ab479168132a2b2c6700fe682b08f08ab0c Mon Sep 17 00:00:00 2001
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+Date: Wed, 14 Jan 2009 14:14:21 +0100
+Subject: [PATCH 29/44] [CVE-2009-0029] System call wrappers part 19
+
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+
+commit 003d7ab479168132a2b2c6700fe682b08f08ab0c upstream.
+
+Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+
+Adjusted to apply to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+
+diff -urpN linux-source-2.6.26.orig/fs/read_write.c linux-source-2.6.26/fs/read_write.c
+--- linux-source-2.6.26.orig/fs/read_write.c 2009-01-19 12:30:49.000000000 -0700
++++ linux-source-2.6.26/fs/read_write.c 2009-01-19 12:32:59.000000000 -0700
+@@ -128,7 +128,7 @@ loff_t vfs_llseek(struct file *file, lof
+ }
+ EXPORT_SYMBOL(vfs_llseek);
+
+-asmlinkage long sys_lseek(unsigned int fd, off_t offset, unsigned int origin)
++SYSCALL_DEFINE3(lseek, unsigned int, fd, off_t, offset, unsigned int, origin)
+ {
+ off_t retval;
+ struct file * file;
+@@ -152,9 +152,9 @@ bad:
+ }
+
+ #ifdef __ARCH_WANT_SYS_LLSEEK
+-asmlinkage long sys_llseek(unsigned int fd, unsigned long offset_high,
+- unsigned long offset_low, loff_t __user * result,
+- unsigned int origin)
++SYSCALL_DEFINE5(llseek, unsigned int, fd, unsigned long, offset_high,
++ unsigned long, offset_low, loff_t __user *, result,
++ unsigned int, origin)
+ {
+ int retval;
+ struct file * file;
+diff -urpN linux-source-2.6.26.orig/fs/utimes.c linux-source-2.6.26/fs/utimes.c
+--- linux-source-2.6.26.orig/fs/utimes.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/fs/utimes.c 2009-01-19 12:32:59.000000000 -0700
+@@ -24,7 +24,7 @@
+ * must be owner or have write permission.
+ * Else, update from *times, must be owner or super user.
+ */
+-asmlinkage long sys_utime(char __user *filename, struct utimbuf __user *times)
++SYSCALL_DEFINE2(utime, char __user *, filename, struct utimbuf __user *, times)
+ {
+ struct timespec tv[2];
+
+@@ -211,7 +211,8 @@ asmlinkage long sys_futimesat(int dfd, c
+ return do_utimes(dfd, filename, utimes ? tstimes : NULL, 0);
+ }
+
+-asmlinkage long sys_utimes(char __user *filename, struct timeval __user *utimes)
++SYSCALL_DEFINE2(utimes, char __user *, filename,
++ struct timeval __user *, utimes)
+ {
+ return sys_futimesat(AT_FDCWD, filename, utimes);
+ }
+diff -urpN linux-source-2.6.26.orig/kernel/uid16.c linux-source-2.6.26/kernel/uid16.c
+--- linux-source-2.6.26.orig/kernel/uid16.c 2009-01-19 12:32:45.000000000 -0700
++++ linux-source-2.6.26/kernel/uid16.c 2009-01-19 12:32:59.000000000 -0700
+@@ -160,7 +160,7 @@ static int groups16_from_user(struct gro
+ return 0;
+ }
+
+-asmlinkage long sys_getgroups16(int gidsetsize, old_gid_t __user *grouplist)
++SYSCALL_DEFINE2(getgroups16, int, gidsetsize, old_gid_t __user *, grouplist)
+ {
+ int i = 0;
+
+@@ -184,7 +184,7 @@ out:
+ return i;
+ }
+
+-asmlinkage long sys_setgroups16(int gidsetsize, old_gid_t __user *grouplist)
++SYSCALL_DEFINE2(setgroups16, int, gidsetsize, old_gid_t __user *, grouplist)
+ {
+ struct group_info *group_info;
+ int retval;
+@@ -209,22 +209,22 @@ asmlinkage long sys_setgroups16(int gids
+ return retval;
+ }
+
+-asmlinkage long sys_getuid16(void)
++SYSCALL_DEFINE0(getuid16)
+ {
+ return high2lowuid(current->uid);
+ }
+
+-asmlinkage long sys_geteuid16(void)
++SYSCALL_DEFINE0(geteuid16)
+ {
+ return high2lowuid(current->euid);
+ }
+
+-asmlinkage long sys_getgid16(void)
++SYSCALL_DEFINE0(getgid16)
+ {
+ return high2lowgid(current->gid);
+ }
+
+-asmlinkage long sys_getegid16(void)
++SYSCALL_DEFINE0(getegid16)
+ {
+ return high2lowgid(current->egid);
+ }
Added: people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0030--CVE-2009-0029-System-call-wrappers-part-20.patch
==============================================================================
--- (empty file)
+++ people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0030--CVE-2009-0029-System-call-wrappers-part-20.patch Tue Jan 20 07:44:38 2009
@@ -0,0 +1,125 @@
+From 3cdad42884bbd95d5aa01297e8236ea1bad70053 Mon Sep 17 00:00:00 2001
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+Date: Wed, 14 Jan 2009 14:14:22 +0100
+Subject: [PATCH 30/44] [CVE-2009-0029] System call wrappers part 20
+
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+
+commit 3cdad42884bbd95d5aa01297e8236ea1bad70053 upstream.
+
+Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+
+Adjusted to apply to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+
+diff -urpN linux-source-2.6.26.orig/fs/dcache.c linux-source-2.6.26/fs/dcache.c
+--- linux-source-2.6.26.orig/fs/dcache.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/fs/dcache.c 2009-01-19 12:33:56.000000000 -0700
+@@ -1956,7 +1956,7 @@ Elong:
+ * return NULL;
+ * }
+ */
+-asmlinkage long sys_getcwd(char __user *buf, unsigned long size)
++SYSCALL_DEFINE2(getcwd, char __user *, buf, unsigned long, size)
+ {
+ int error;
+ struct path pwd, root;
+diff -urpN linux-source-2.6.26.orig/fs/namei.c linux-source-2.6.26/fs/namei.c
+--- linux-source-2.6.26.orig/fs/namei.c 2009-01-19 12:26:42.000000000 -0700
++++ linux-source-2.6.26/fs/namei.c 2009-01-19 12:33:56.000000000 -0700
+@@ -2203,7 +2203,7 @@ out_err:
+ return error;
+ }
+
+-asmlinkage long sys_mkdir(const char __user *pathname, int mode)
++SYSCALL_DEFINE2(mkdir, const char __user *, pathname, int, mode)
+ {
+ return sys_mkdirat(AT_FDCWD, pathname, mode);
+ }
+@@ -2315,7 +2315,7 @@ exit:
+ return error;
+ }
+
+-asmlinkage long sys_rmdir(const char __user *pathname)
++SYSCALL_DEFINE1(rmdir, const char __user *, pathname)
+ {
+ return do_rmdir(AT_FDCWD, pathname);
+ }
+diff -urpN linux-source-2.6.26.orig/fs/open.c linux-source-2.6.26/fs/open.c
+--- linux-source-2.6.26.orig/fs/open.c 2009-01-19 12:31:38.000000000 -0700
++++ linux-source-2.6.26/fs/open.c 2009-01-19 12:33:56.000000000 -0700
+@@ -514,7 +514,7 @@ SYSCALL_DEFINE2(access, const char __use
+ return sys_faccessat(AT_FDCWD, filename, mode);
+ }
+
+-asmlinkage long sys_chdir(const char __user * filename)
++SYSCALL_DEFINE1(chdir, const char __user *, filename)
+ {
+ struct nameidata nd;
+ int error;
+@@ -536,7 +536,7 @@ out:
+ return error;
+ }
+
+-asmlinkage long sys_fchdir(unsigned int fd)
++SYSCALL_DEFINE1(fchdir, unsigned int, fd)
+ {
+ struct file *file;
+ struct inode *inode;
+diff -urpN linux-source-2.6.26.orig/fs/quota.c linux-source-2.6.26/fs/quota.c
+--- linux-source-2.6.26.orig/fs/quota.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/fs/quota.c 2009-01-19 12:33:56.000000000 -0700
+@@ -362,7 +362,8 @@ static inline struct super_block *quotac
+ * calls. Maybe we need to add the process quotas etc. in the future,
+ * but we probably should use rlimits for that.
+ */
+-asmlinkage long sys_quotactl(unsigned int cmd, const char __user *special, qid_t id, void __user *addr)
++SYSCALL_DEFINE4(quotactl, unsigned int, cmd, const char __user *, special,
++ qid_t, id, void __user *, addr)
+ {
+ uint cmds, type;
+ struct super_block *sb = NULL;
+diff -urpN linux-source-2.6.26.orig/fs/read_write.c linux-source-2.6.26/fs/read_write.c
+--- linux-source-2.6.26.orig/fs/read_write.c 2009-01-19 12:32:59.000000000 -0700
++++ linux-source-2.6.26/fs/read_write.c 2009-01-19 12:33:56.000000000 -0700
+@@ -350,7 +350,7 @@ static inline void file_pos_write(struct
+ file->f_pos = pos;
+ }
+
+-asmlinkage long sys_read(unsigned int fd, char __user * buf, size_t count)
++SYSCALL_DEFINE3(read, unsigned int, fd, char __user *, buf, size_t, count)
+ {
+ struct file *file;
+ ssize_t ret = -EBADF;
+@@ -367,7 +367,8 @@ asmlinkage long sys_read(unsigned int fd
+ return ret;
+ }
+
+-asmlinkage long sys_write(unsigned int fd, const char __user * buf, size_t count)
++SYSCALL_DEFINE3(write, unsigned int, fd, const char __user *, buf,
++ size_t, count)
+ {
+ struct file *file;
+ ssize_t ret = -EBADF;
+@@ -669,8 +670,8 @@ ssize_t vfs_writev(struct file *file, co
+
+ EXPORT_SYMBOL(vfs_writev);
+
+-asmlinkage long
+-sys_readv(unsigned long fd, const struct iovec __user *vec, unsigned long vlen)
++SYSCALL_DEFINE3(readv, unsigned long, fd, const struct iovec __user *, vec,
++ unsigned long, vlen)
+ {
+ struct file *file;
+ ssize_t ret = -EBADF;
+@@ -690,8 +691,8 @@ sys_readv(unsigned long fd, const struct
+ return ret;
+ }
+
+-asmlinkage long
+-sys_writev(unsigned long fd, const struct iovec __user *vec, unsigned long vlen)
++SYSCALL_DEFINE3(writev, unsigned long, fd, const struct iovec __user *, vec,
++ unsigned long, vlen)
+ {
+ struct file *file;
+ ssize_t ret = -EBADF;
Added: people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0031--CVE-2009-0029-System-call-wrappers-part-21.patch
==============================================================================
--- (empty file)
+++ people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0031--CVE-2009-0029-System-call-wrappers-part-21.patch Tue Jan 20 07:44:38 2009
@@ -0,0 +1,115 @@
+From 20f37034fb966a1c35894f9fe529fda0b6440101 Mon Sep 17 00:00:00 2001
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+Date: Wed, 14 Jan 2009 14:14:23 +0100
+Subject: [PATCH 31/44] [CVE-2009-0029] System call wrappers part 21
+
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+
+commit 20f37034fb966a1c35894f9fe529fda0b6440101 upstream.
+
+Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+
+Backported to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+
+diff -urpN linux-source-2.6.26.orig/fs/readdir.c linux-source-2.6.26/fs/readdir.c
+--- linux-source-2.6.26.orig/fs/readdir.c 2009-01-19 11:17:08.000000000 -0700
++++ linux-source-2.6.26/fs/readdir.c 2009-01-19 12:34:46.000000000 -0700
+@@ -183,7 +183,8 @@ efault:
+ return -EFAULT;
+ }
+
+-asmlinkage long sys_getdents(unsigned int fd, struct linux_dirent __user * dirent, unsigned int count)
++SYSCALL_DEFINE3(getdents, unsigned int, fd,
++ struct linux_dirent __user *, dirent, unsigned int, count)
+ {
+ struct file * file;
+ struct linux_dirent __user * lastdirent;
+@@ -267,7 +268,8 @@ efault:
+ return -EFAULT;
+ }
+
+-asmlinkage long sys_getdents64(unsigned int fd, struct linux_dirent64 __user * dirent, unsigned int count)
++SYSCALL_DEFINE3(getdents64, unsigned int, fd,
++ struct linux_dirent64 __user *, dirent, unsigned int, count)
+ {
+ struct file * file;
+ struct linux_dirent64 __user * lastdirent;
+diff -urpN linux-source-2.6.26.orig/net/socket.c linux-source-2.6.26/net/socket.c
+--- linux-source-2.6.26.orig/net/socket.c 2009-01-19 12:07:11.000000000 -0700
++++ linux-source-2.6.26/net/socket.c 2009-01-19 12:34:46.000000000 -0700
+@@ -1338,7 +1338,7 @@ out_fd:
+ * the protocol layer (having also checked the address is ok).
+ */
+
+-asmlinkage long sys_bind(int fd, struct sockaddr __user *umyaddr, int addrlen)
++SYSCALL_DEFINE3(bind, int, fd, struct sockaddr __user *, umyaddr, int, addrlen)
+ {
+ struct socket *sock;
+ char address[MAX_SOCK_ADDR];
+@@ -1400,8 +1400,8 @@ asmlinkage long sys_listen(int fd, int b
+ * clean when we restucture accept also.
+ */
+
+-asmlinkage long sys_accept(int fd, struct sockaddr __user *upeer_sockaddr,
+- int __user *upeer_addrlen)
++SYSCALL_DEFINE3(accept, int, fd, struct sockaddr __user *, upeer_sockaddr,
++ int __user *, upeer_addrlen)
+ {
+ struct socket *sock, *newsock;
+ struct file *newfile;
+@@ -1490,8 +1490,8 @@ out_fd:
+ * include the -EINPROGRESS status for such sockets.
+ */
+
+-asmlinkage long sys_connect(int fd, struct sockaddr __user *uservaddr,
+- int addrlen)
++SYSCALL_DEFINE3(connect, int, fd, struct sockaddr __user *, uservaddr,
++ int, addrlen)
+ {
+ struct socket *sock;
+ char address[MAX_SOCK_ADDR];
+@@ -1522,8 +1522,8 @@ out:
+ * name to user space.
+ */
+
+-asmlinkage long sys_getsockname(int fd, struct sockaddr __user *usockaddr,
+- int __user *usockaddr_len)
++SYSCALL_DEFINE3(getsockname, int, fd, struct sockaddr __user *, usockaddr,
++ int __user *, usockaddr_len)
+ {
+ struct socket *sock;
+ char address[MAX_SOCK_ADDR];
+@@ -1553,8 +1553,8 @@ out:
+ * name to user space.
+ */
+
+-asmlinkage long sys_getpeername(int fd, struct sockaddr __user *usockaddr,
+- int __user *usockaddr_len)
++SYSCALL_DEFINE3(getpeername, int, fd, struct sockaddr __user *, usockaddr,
++ int __user *, usockaddr_len)
+ {
+ struct socket *sock;
+ char address[MAX_SOCK_ADDR];
+@@ -1694,8 +1694,8 @@ asmlinkage long sys_recv(int fd, void __
+ * to pass the user mode parameter for the protocols to sort out.
+ */
+
+-asmlinkage long sys_setsockopt(int fd, int level, int optname,
+- char __user *optval, int optlen)
++SYSCALL_DEFINE5(setsockopt, int, fd, int, level, int, optname,
++ char __user *, optval, int, optlen)
+ {
+ int err, fput_needed;
+ struct socket *sock;
+@@ -1728,8 +1728,8 @@ out_put:
+ * to pass a user mode parameter for the protocols to sort out.
+ */
+
+-asmlinkage long sys_getsockopt(int fd, int level, int optname,
+- char __user *optval, int __user *optlen)
++SYSCALL_DEFINE5(getsockopt, int, fd, int, level, int, optname,
++ char __user *, optval, int __user *, optlen)
+ {
+ int err, fput_needed;
+ struct socket *sock;
Added: people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0032--CVE-2009-0029-System-call-wrappers-part-22.patch
==============================================================================
--- (empty file)
+++ people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0032--CVE-2009-0029-System-call-wrappers-part-22.patch Tue Jan 20 07:44:38 2009
@@ -0,0 +1,111 @@
+From 3e0fa65f8ba4fd24b3dcfaf14d5b15eaab0fdc61 Mon Sep 17 00:00:00 2001
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+Date: Wed, 14 Jan 2009 14:14:24 +0100
+Subject: [PATCH 32/44] [CVE-2009-0029] System call wrappers part 22
+
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+
+commit 3e0fa65f8ba4fd24b3dcfaf14d5b15eaab0fdc61 upstream.
+
+Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+
+Adjusted to apply to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+
+diff -urpN linux-source-2.6.26.orig/net/socket.c linux-source-2.6.26/net/socket.c
+--- linux-source-2.6.26.orig/net/socket.c 2009-01-19 12:34:46.000000000 -0700
++++ linux-source-2.6.26/net/socket.c 2009-01-19 12:42:27.000000000 -0700
+@@ -1213,7 +1213,7 @@ int sock_create_kern(int family, int typ
+ return __sock_create(&init_net, family, type, protocol, res, 1);
+ }
+
+-asmlinkage long sys_socket(int family, int type, int protocol)
++SYSCALL_DEFINE3(socket, int, family, int, type, int, protocol)
+ {
+ int retval;
+ struct socket *sock;
+@@ -1239,8 +1239,8 @@ out_release:
+ * Create a pair of connected sockets.
+ */
+
+-asmlinkage long sys_socketpair(int family, int type, int protocol,
+- int __user *usockvec)
++SYSCALL_DEFINE4(socketpair, int, family, int, type, int, protocol,
++ int __user *, usockvec)
+ {
+ struct socket *sock1, *sock2;
+ int fd1, fd2, err;
+@@ -1367,7 +1367,7 @@ SYSCALL_DEFINE3(bind, int, fd, struct so
+ * ready for listening.
+ */
+
+-asmlinkage long sys_listen(int fd, int backlog)
++SYSCALL_DEFINE2(listen, int, fd, int, backlog)
+ {
+ struct socket *sock;
+ int err, fput_needed;
+@@ -1585,9 +1585,9 @@ SYSCALL_DEFINE3(getpeername, int, fd, st
+ * the protocol.
+ */
+
+-asmlinkage long sys_sendto(int fd, void __user *buff, size_t len,
+- unsigned flags, struct sockaddr __user *addr,
+- int addr_len)
++SYSCALL_DEFINE6(sendto, int, fd, void __user *, buff, size_t, len,
++ unsigned, flags, struct sockaddr __user *, addr,
++ int, addr_len)
+ {
+ struct socket *sock;
+ char address[MAX_SOCK_ADDR];
+@@ -1630,7 +1630,8 @@ out:
+ * Send a datagram down a socket.
+ */
+
+-asmlinkage long sys_send(int fd, void __user *buff, size_t len, unsigned flags)
++SYSCALL_DEFINE4(send, int, fd, void __user *, buff, size_t, len,
++ unsigned, flags)
+ {
+ return sys_sendto(fd, buff, len, flags, NULL, 0);
+ }
+@@ -1641,9 +1642,9 @@ asmlinkage long sys_send(int fd, void __
+ * sender address from kernel to user space.
+ */
+
+-asmlinkage long sys_recvfrom(int fd, void __user *ubuf, size_t size,
+- unsigned flags, struct sockaddr __user *addr,
+- int __user *addr_len)
++SYSCALL_DEFINE6(recvfrom, int, fd, void __user *, ubuf, size_t, size,
++ unsigned, flags, struct sockaddr __user *, addr,
++ int __user *, addr_len)
+ {
+ struct socket *sock;
+ struct iovec iov;
+@@ -1784,7 +1785,7 @@ SYSCALL_DEFINE2(shutdown, int, fd, int,
+ * BSD sendmsg interface
+ */
+
+-asmlinkage long sys_sendmsg(int fd, struct msghdr __user *msg, unsigned flags)
++SYSCALL_DEFINE3(sendmsg, int, fd, struct msghdr __user *, msg, unsigned, flags)
+ {
+ struct compat_msghdr __user *msg_compat =
+ (struct compat_msghdr __user *)msg;
+@@ -1886,8 +1887,8 @@ out:
+ * BSD recvmsg interface
+ */
+
+-asmlinkage long sys_recvmsg(int fd, struct msghdr __user *msg,
+- unsigned int flags)
++SYSCALL_DEFINE3(recvmsg, int, fd, struct msghdr __user *, msg,
++ unsigned int, flags)
+ {
+ struct compat_msghdr __user *msg_compat =
+ (struct compat_msghdr __user *)msg;
+@@ -2004,7 +2005,7 @@ static const unsigned char nargs[18]={
+ * it is set by the callees.
+ */
+
+-asmlinkage long sys_socketcall(int call, unsigned long __user *args)
++SYSCALL_DEFINE2(socketcall, int, call, unsigned long __user *, args)
+ {
+ unsigned long a[6];
+ unsigned long a0, a1;
Added: people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0033--CVE-2009-0029-System-call-wrappers-part-23.patch
==============================================================================
--- (empty file)
+++ people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0033--CVE-2009-0029-System-call-wrappers-part-23.patch Tue Jan 20 07:44:38 2009
@@ -0,0 +1,116 @@
+From 5a8a82b1d306a325d899b67715618413657efda4 Mon Sep 17 00:00:00 2001
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+Date: Wed, 14 Jan 2009 14:14:25 +0100
+Subject: [PATCH 33/44] [CVE-2009-0029] System call wrappers part 23
+
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+
+commit 5a8a82b1d306a325d899b67715618413657efda4 upstream.
+
+Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+
+Backported to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+
+diff -urpN linux-source-2.6.26.orig/fs/eventpoll.c linux-source-2.6.26/fs/eventpoll.c
+--- linux-source-2.6.26.orig/fs/eventpoll.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/fs/eventpoll.c 2009-01-19 12:46:21.000000000 -0700
+@@ -1046,7 +1046,7 @@ retry:
+ * RB tree. With the current implementation, the "size" parameter is ignored
+ * (besides sanity checks).
+ */
+-asmlinkage long sys_epoll_create(int size)
++SYSCALL_DEFINE1(epoll_create, int, size)
+ {
+ int error, fd = -1;
+ struct eventpoll *ep;
+@@ -1084,8 +1084,8 @@ error_return:
+ * the eventpoll file that enables the insertion/removal/change of
+ * file descriptors inside the interest set.
+ */
+-asmlinkage long sys_epoll_ctl(int epfd, int op, int fd,
+- struct epoll_event __user *event)
++SYSCALL_DEFINE4(epoll_ctl, int, epfd, int, op, int, fd,
++ struct epoll_event __user *, event)
+ {
+ int error;
+ struct file *file, *tfile;
+@@ -1182,8 +1182,8 @@ error_return:
+ * Implement the event wait interface for the eventpoll file. It is the kernel
+ * part of the user space epoll_wait(2).
+ */
+-asmlinkage long sys_epoll_wait(int epfd, struct epoll_event __user *events,
+- int maxevents, int timeout)
++SYSCALL_DEFINE4(epoll_wait, int, epfd, struct epoll_event __user *, events,
++ int, maxevents, int, timeout)
+ {
+ int error;
+ struct file *file;
+@@ -1240,9 +1240,9 @@ error_return:
+ * Implement the event wait interface for the eventpoll file. It is the kernel
+ * part of the user space epoll_pwait(2).
+ */
+-asmlinkage long sys_epoll_pwait(int epfd, struct epoll_event __user *events,
+- int maxevents, int timeout, const sigset_t __user *sigmask,
+- size_t sigsetsize)
++SYSCALL_DEFINE6(epoll_pwait, int, epfd, struct epoll_event __user *, events,
++ int, maxevents, int, timeout, const sigset_t __user *, sigmask,
++ size_t, sigsetsize)
+ {
+ int error;
+ sigset_t ksigmask, sigsaved;
+diff -urpN linux-source-2.6.26.orig/fs/select.c linux-source-2.6.26/fs/select.c
+--- linux-source-2.6.26.orig/fs/select.c 2009-01-19 11:42:04.000000000 -0700
++++ linux-source-2.6.26/fs/select.c 2009-01-19 12:43:21.000000000 -0700
+@@ -374,8 +374,8 @@ out_nofds:
+ return ret;
+ }
+
+-asmlinkage long sys_select(int n, fd_set __user *inp, fd_set __user *outp,
+- fd_set __user *exp, struct timeval __user *tvp)
++SYSCALL_DEFINE5(select, int, n, fd_set __user *, inp, fd_set __user *, outp,
++ fd_set __user *, exp, struct timeval __user *, tvp)
+ {
+ s64 timeout = -1;
+ struct timeval tv;
+@@ -727,8 +727,8 @@ static long do_restart_poll(struct resta
+ return ret;
+ }
+
+-asmlinkage long sys_poll(struct pollfd __user *ufds, unsigned int nfds,
+- long timeout_msecs)
++SYSCALL_DEFINE3(poll, struct pollfd __user *, ufds, unsigned int, nfds,
++ long, timeout_msecs)
+ {
+ s64 timeout_jiffies;
+ int ret;
+diff -urpN linux-source-2.6.26.orig/kernel/sys.c linux-source-2.6.26/kernel/sys.c
+--- linux-source-2.6.26.orig/kernel/sys.c 2009-01-19 12:07:11.000000000 -0700
++++ linux-source-2.6.26/kernel/sys.c 2009-01-19 12:43:21.000000000 -0700
+@@ -1357,7 +1357,7 @@ asmlinkage long sys_newuname(struct new_
+ return errno;
+ }
+
+-asmlinkage long sys_sethostname(char __user *name, int len)
++SYSCALL_DEFINE2(sethostname, char __user *, name, int, len)
+ {
+ int errno;
+ char tmp[__NEW_UTS_LEN];
+@@ -1379,7 +1379,7 @@ asmlinkage long sys_sethostname(char __u
+
+ #ifdef __ARCH_WANT_SYS_GETHOSTNAME
+
+-asmlinkage long sys_gethostname(char __user *name, int len)
++SYSCALL_DEFINE2(gethostname, char __user *, name, int, len)
+ {
+ int i, errno;
+
+@@ -1402,7 +1402,7 @@ asmlinkage long sys_gethostname(char __u
+ * Only setdomainname; getdomainname can be implemented by calling
+ * uname()
+ */
+-asmlinkage long sys_setdomainname(char __user *name, int len)
++SYSCALL_DEFINE2(setdomainname, char __user *, name, int, len)
+ {
+ int errno;
+ char tmp[__NEW_UTS_LEN];
Added: people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0034--CVE-2009-0029-System-call-wrappers-part-24.patch
==============================================================================
--- (empty file)
+++ people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0034--CVE-2009-0029-System-call-wrappers-part-24.patch Tue Jan 20 07:44:38 2009
@@ -0,0 +1,115 @@
+From e48fbb699f82ef1e80bd7126046394d2dc9ca7e6 Mon Sep 17 00:00:00 2001
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+Date: Wed, 14 Jan 2009 14:14:26 +0100
+Subject: [PATCH 34/44] [CVE-2009-0029] System call wrappers part 24
+
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+
+commit e48fbb699f82ef1e80bd7126046394d2dc9ca7e6 upstream.
+
+Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+
+Adjusted to apply to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+
+diff -urpN linux-source-2.6.26.orig/ipc/msg.c linux-source-2.6.26/ipc/msg.c
+--- linux-source-2.6.26.orig/ipc/msg.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/ipc/msg.c 2009-01-19 12:47:29.000000000 -0700
+@@ -309,7 +309,7 @@ static inline int msg_security(struct ke
+ return security_msg_queue_associate(msq, msgflg);
+ }
+
+-asmlinkage long sys_msgget(key_t key, int msgflg)
++SYSCALL_DEFINE2(msgget, key_t, key, int, msgflg)
+ {
+ struct ipc_namespace *ns;
+ struct ipc_ops msg_ops;
+@@ -466,7 +466,7 @@ out_up:
+ return err;
+ }
+
+-asmlinkage long sys_msgctl(int msqid, int cmd, struct msqid_ds __user *buf)
++SYSCALL_DEFINE3(msgctl, int, msqid, int, cmd, struct msqid_ds __user *, buf)
+ {
+ struct msg_queue *msq;
+ int err, version;
+@@ -723,8 +723,8 @@ out_free:
+ return err;
+ }
+
+-asmlinkage long
+-sys_msgsnd(int msqid, struct msgbuf __user *msgp, size_t msgsz, int msgflg)
++SYSCALL_DEFINE4(msgsnd, int, msqid, struct msgbuf __user *, msgp, size_t, msgsz,
++ int, msgflg)
+ {
+ long mtype;
+
+@@ -904,8 +904,8 @@ out_unlock:
+ return msgsz;
+ }
+
+-asmlinkage long sys_msgrcv(int msqid, struct msgbuf __user *msgp, size_t msgsz,
+- long msgtyp, int msgflg)
++SYSCALL_DEFINE5(msgrcv, int, msqid, struct msgbuf __user *, msgp, size_t, msgsz,
++ long, msgtyp, int, msgflg)
+ {
+ long err, mtype;
+
+diff -urpN linux-source-2.6.26.orig/kernel/sys.c linux-source-2.6.26/kernel/sys.c
+--- linux-source-2.6.26.orig/kernel/sys.c 2009-01-19 12:43:21.000000000 -0700
++++ linux-source-2.6.26/kernel/sys.c 2009-01-19 12:47:29.000000000 -0700
+@@ -1346,7 +1346,7 @@ DECLARE_RWSEM(uts_sem);
+
+ EXPORT_SYMBOL(uts_sem);
+
+-asmlinkage long sys_newuname(struct new_utsname __user * name)
++SYSCALL_DEFINE1(newuname, struct new_utsname __user *, name)
+ {
+ int errno = 0;
+
+@@ -1423,7 +1423,7 @@ SYSCALL_DEFINE2(setdomainname, char __us
+ return errno;
+ }
+
+-asmlinkage long sys_getrlimit(unsigned int resource, struct rlimit __user *rlim)
++SYSCALL_DEFINE2(getrlimit, unsigned int, resource, struct rlimit __user *, rlim)
+ {
+ if (resource >= RLIM_NLIMITS)
+ return -EINVAL;
+@@ -1442,7 +1442,8 @@ asmlinkage long sys_getrlimit(unsigned i
+ * Back compatibility for getrlimit. Needed for some apps.
+ */
+
+-asmlinkage long sys_old_getrlimit(unsigned int resource, struct rlimit __user *rlim)
++SYSCALL_DEFINE2(old_getrlimit, unsigned int, resource,
++ struct rlimit __user *, rlim)
+ {
+ struct rlimit x;
+ if (resource >= RLIM_NLIMITS)
+@@ -1460,7 +1461,7 @@ asmlinkage long sys_old_getrlimit(unsign
+
+ #endif
+
+-asmlinkage long sys_setrlimit(unsigned int resource, struct rlimit __user *rlim)
++SYSCALL_DEFINE2(setrlimit, unsigned int, resource, struct rlimit __user *, rlim)
+ {
+ struct rlimit new_rlim, *old_rlim;
+ unsigned long it_prof_secs;
+@@ -1636,7 +1637,7 @@ int getrusage(struct task_struct *p, int
+ return copy_to_user(ru, &r, sizeof(r)) ? -EFAULT : 0;
+ }
+
+-asmlinkage long sys_getrusage(int who, struct rusage __user *ru)
++SYSCALL_DEFINE2(getrusage, int, who, struct rusage __user *, ru)
+ {
+ if (who != RUSAGE_SELF && who != RUSAGE_CHILDREN &&
+ who != RUSAGE_THREAD)
+@@ -1644,7 +1645,7 @@ asmlinkage long sys_getrusage(int who, s
+ return getrusage(current, who, ru);
+ }
+
+-asmlinkage long sys_umask(int mask)
++SYSCALL_DEFINE1(umask, int, mask)
+ {
+ mask = xchg(¤t->fs->umask, mask & S_IRWXUGO);
+ return mask;
Added: people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0035--CVE-2009-0029-System-call-wrappers-part-25.patch
==============================================================================
--- (empty file)
+++ people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0035--CVE-2009-0029-System-call-wrappers-part-25.patch Tue Jan 20 07:44:38 2009
@@ -0,0 +1,109 @@
+From d5460c9974a321a194aded4a8c4daaac68ea8171 Mon Sep 17 00:00:00 2001
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+Date: Wed, 14 Jan 2009 14:14:27 +0100
+Subject: [PATCH 35/44] [CVE-2009-0029] System call wrappers part 25
+
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+
+commit d5460c9974a321a194aded4a8c4daaac68ea8171 upstream.
+
+Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+
+Adjusted to apply to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+
+diff -urpN linux-source-2.6.26.orig/ipc/mqueue.c linux-source-2.6.26/ipc/mqueue.c
+--- linux-source-2.6.26.orig/ipc/mqueue.c 2009-01-19 11:12:44.000000000 -0700
++++ linux-source-2.6.26/ipc/mqueue.c 2009-01-19 12:48:20.000000000 -0700
+@@ -658,8 +658,8 @@ static int oflag2acc[O_ACCMODE] = { MAY_
+ return dentry_open(dentry, mqueue_mnt, oflag);
+ }
+
+-asmlinkage long sys_mq_open(const char __user *u_name, int oflag, mode_t mode,
+- struct mq_attr __user *u_attr)
++SYSCALL_DEFINE4(mq_open, const char __user *, u_name, int, oflag, mode_t, mode,
++ struct mq_attr __user *, u_attr)
+ {
+ struct dentry *dentry;
+ struct file *filp;
+@@ -726,7 +726,7 @@ out_putname:
+ return fd;
+ }
+
+-asmlinkage long sys_mq_unlink(const char __user *u_name)
++SYSCALL_DEFINE1(mq_unlink, const char __user *, u_name)
+ {
+ int err;
+ char *name;
+diff -urpN linux-source-2.6.26.orig/ipc/sem.c linux-source-2.6.26/ipc/sem.c
+--- linux-source-2.6.26.orig/ipc/sem.c 2009-01-19 11:55:54.000000000 -0700
++++ linux-source-2.6.26/ipc/sem.c 2009-01-19 12:48:20.000000000 -0700
+@@ -309,7 +309,7 @@ static inline int sem_more_checks(struct
+ return 0;
+ }
+
+-asmlinkage long sys_semget(key_t key, int nsems, int semflg)
++SYSCALL_DEFINE3(semget, key_t, key, int, nsems, int, semflg)
+ {
+ struct ipc_namespace *ns;
+ struct ipc_ops sem_ops;
+@@ -1046,8 +1046,8 @@ out:
+ return un;
+ }
+
+-asmlinkage long sys_semtimedop(int semid, struct sembuf __user *tsops,
+- unsigned nsops, const struct timespec __user *timeout)
++SYSCALL_DEFINE4(semtimedop, int, semid, struct sembuf __user *, tsops,
++ unsigned, nsops, const struct timespec __user *, timeout)
+ {
+ int error = -EINVAL;
+ struct sem_array *sma;
+@@ -1210,7 +1210,8 @@ out_free:
+ return error;
+ }
+
+-asmlinkage long sys_semop (int semid, struct sembuf __user *tsops, unsigned nsops)
++SYSCALL_DEFINE3(semop, int, semid, struct sembuf __user *, tsops,
++ unsigned, nsops)
+ {
+ return sys_semtimedop(semid, tsops, nsops, NULL);
+ }
+diff -urpN linux-source-2.6.26.orig/ipc/shm.c linux-source-2.6.26/ipc/shm.c
+--- linux-source-2.6.26.orig/ipc/shm.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/ipc/shm.c 2009-01-19 12:48:20.000000000 -0700
+@@ -455,7 +455,7 @@ static inline int shm_more_checks(struct
+ return 0;
+ }
+
+-asmlinkage long sys_shmget (key_t key, size_t size, int shmflg)
++SYSCALL_DEFINE3(shmget, key_t, key, size_t, size, int, shmflg)
+ {
+ struct ipc_namespace *ns;
+ struct ipc_ops shm_ops;
+@@ -635,7 +635,7 @@ out_up:
+ return err;
+ }
+
+-asmlinkage long sys_shmctl(int shmid, int cmd, struct shmid_ds __user *buf)
++SYSCALL_DEFINE3(shmctl, int, shmid, int, cmd, struct shmid_ds __user *, buf)
+ {
+ struct shmid_kernel *shp;
+ int err, version;
+@@ -955,7 +955,7 @@ out_put_dentry:
+ goto out_nattch;
+ }
+
+-asmlinkage long sys_shmat(int shmid, char __user *shmaddr, int shmflg)
++SYSCALL_DEFINE3(shmat, int, shmid, char __user *, shmaddr, int, shmflg)
+ {
+ unsigned long ret;
+ long err;
+@@ -971,7 +971,7 @@ asmlinkage long sys_shmat(int shmid, cha
+ * detach and kill segment if marked destroyed.
+ * The work is done in shm_close.
+ */
+-asmlinkage long sys_shmdt(char __user *shmaddr)
++SYSCALL_DEFINE1(shmdt, char __user *, shmaddr)
+ {
+ struct mm_struct *mm = current->mm;
+ struct vm_area_struct *vma, *next;
Added: people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0036--CVE-2009-0029-System-call-wrappers-part-26.patch
==============================================================================
--- (empty file)
+++ people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0036--CVE-2009-0029-System-call-wrappers-part-26.patch Tue Jan 20 07:44:38 2009
@@ -0,0 +1,131 @@
+From c4ea37c26a691ad0b7e86aa5884aab27830e95c9 Mon Sep 17 00:00:00 2001
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+Date: Wed, 14 Jan 2009 14:14:28 +0100
+Subject: [PATCH 36/44] [CVE-2009-0029] System call wrappers part 26
+
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+
+commit c4ea37c26a691ad0b7e86aa5884aab27830e95c9 upstream.
+
+Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+
+Adjusted to apply to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+
+diff -urpN linux-source-2.6.26.orig/drivers/pci/syscall.c linux-source-2.6.26/drivers/pci/syscall.c
+--- linux-source-2.6.26.orig/drivers/pci/syscall.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/drivers/pci/syscall.c 2009-01-19 12:49:03.000000000 -0700
+@@ -14,10 +14,8 @@
+ #include <asm/uaccess.h>
+ #include "pci.h"
+
+-asmlinkage long
+-sys_pciconfig_read(unsigned long bus, unsigned long dfn,
+- unsigned long off, unsigned long len,
+- void __user *buf)
++SYSCALL_DEFINE5(pciconfig_read, unsigned long, bus, unsigned long, dfn,
++ unsigned long, off, unsigned long, len, void __user *, buf)
+ {
+ struct pci_dev *dev;
+ u8 byte;
+@@ -86,10 +84,8 @@ error:
+ return err;
+ }
+
+-asmlinkage long
+-sys_pciconfig_write(unsigned long bus, unsigned long dfn,
+- unsigned long off, unsigned long len,
+- void __user *buf)
++SYSCALL_DEFINE5(pciconfig_write, unsigned long, bus, unsigned long, dfn,
++ unsigned long, off, unsigned long, len, void __user *, buf)
+ {
+ struct pci_dev *dev;
+ u8 byte;
+diff -urpN linux-source-2.6.26.orig/ipc/mqueue.c linux-source-2.6.26/ipc/mqueue.c
+--- linux-source-2.6.26.orig/ipc/mqueue.c 2009-01-19 12:48:20.000000000 -0700
++++ linux-source-2.6.26/ipc/mqueue.c 2009-01-19 12:49:03.000000000 -0700
+@@ -819,9 +819,9 @@ static inline void pipelined_receive(str
+ sender->state = STATE_READY;
+ }
+
+-asmlinkage long sys_mq_timedsend(mqd_t mqdes, const char __user *u_msg_ptr,
+- size_t msg_len, unsigned int msg_prio,
+- const struct timespec __user *u_abs_timeout)
++SYSCALL_DEFINE5(mq_timedsend, mqd_t, mqdes, const char __user *, u_msg_ptr,
++ size_t, msg_len, unsigned int, msg_prio,
++ const struct timespec __user *, u_abs_timeout)
+ {
+ struct file *filp;
+ struct inode *inode;
+@@ -907,9 +907,9 @@ out:
+ return ret;
+ }
+
+-asmlinkage long sys_mq_timedreceive(mqd_t mqdes, char __user *u_msg_ptr,
+- size_t msg_len, unsigned int __user *u_msg_prio,
+- const struct timespec __user *u_abs_timeout)
++SYSCALL_DEFINE5(mq_timedreceive, mqd_t, mqdes, char __user *, u_msg_ptr,
++ size_t, msg_len, unsigned int __user *, u_msg_prio,
++ const struct timespec __user *, u_abs_timeout)
+ {
+ long timeout;
+ ssize_t ret;
+@@ -992,8 +992,8 @@ out:
+ * and he isn't currently owner of notification, will be silently discarded.
+ * It isn't explicitly defined in the POSIX.
+ */
+-asmlinkage long sys_mq_notify(mqd_t mqdes,
+- const struct sigevent __user *u_notification)
++SYSCALL_DEFINE2(mq_notify, mqd_t, mqdes,
++ const struct sigevent __user *, u_notification)
+ {
+ int ret;
+ struct file *filp;
+@@ -1118,9 +1118,9 @@ out:
+ return ret;
+ }
+
+-asmlinkage long sys_mq_getsetattr(mqd_t mqdes,
+- const struct mq_attr __user *u_mqstat,
+- struct mq_attr __user *u_omqstat)
++SYSCALL_DEFINE3(mq_getsetattr, mqd_t, mqdes,
++ const struct mq_attr __user *, u_mqstat,
++ struct mq_attr __user *, u_omqstat)
+ {
+ int ret;
+ struct mq_attr mqstat, omqstat;
+diff -urpN linux-source-2.6.26.orig/kernel/sys.c linux-source-2.6.26/kernel/sys.c
+--- linux-source-2.6.26.orig/kernel/sys.c 2009-01-19 12:47:29.000000000 -0700
++++ linux-source-2.6.26/kernel/sys.c 2009-01-19 12:49:03.000000000 -0700
+@@ -1651,8 +1651,8 @@ SYSCALL_DEFINE1(umask, int, mask)
+ return mask;
+ }
+
+-asmlinkage long sys_prctl(int option, unsigned long arg2, unsigned long arg3,
+- unsigned long arg4, unsigned long arg5)
++SYSCALL_DEFINE5(prctl, int, option, unsigned long, arg2, unsigned long, arg3,
++ unsigned long, arg4, unsigned long, arg5)
+ {
+ long error = 0;
+
+diff -urpN linux-source-2.6.26.orig/mm/swapfile.c linux-source-2.6.26/mm/swapfile.c
+--- linux-source-2.6.26.orig/mm/swapfile.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/mm/swapfile.c 2009-01-19 12:49:03.000000000 -0700
+@@ -1203,7 +1203,7 @@ int page_queue_congested(struct page *pa
+ }
+ #endif
+
+-asmlinkage long sys_swapoff(const char __user * specialfile)
++SYSCALL_DEFINE1(swapoff, const char __user *, specialfile)
+ {
+ struct swap_info_struct * p = NULL;
+ unsigned short *swap_map;
+@@ -1437,7 +1437,7 @@ __initcall(procswaps_init);
+ *
+ * The swapon system call
+ */
+-asmlinkage long sys_swapon(const char __user * specialfile, int swap_flags)
++SYSCALL_DEFINE2(swapon, const char __user *, specialfile, int, swap_flags)
+ {
+ struct swap_info_struct * p;
+ char *name = NULL;
Added: people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0037--CVE-2009-0029-System-call-wrappers-part-27.patch
==============================================================================
--- (empty file)
+++ people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0037--CVE-2009-0029-System-call-wrappers-part-27.patch Tue Jan 20 07:44:38 2009
@@ -0,0 +1,144 @@
+From 1e7bfb2134dfec37ce04fb3a4ca89299e892d10c Mon Sep 17 00:00:00 2001
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+Date: Wed, 14 Jan 2009 14:14:29 +0100
+Subject: [PATCH 37/44] [CVE-2009-0029] System call wrappers part 27
+
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+
+commit 1e7bfb2134dfec37ce04fb3a4ca89299e892d10c upstream.
+
+Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+
+Adjusted to apply to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+
+diff -urpN linux-source-2.6.26.orig/fs/exec.c linux-source-2.6.26/fs/exec.c
+--- linux-source-2.6.26.orig/fs/exec.c 2009-01-10 05:42:12.000000000 -0700
++++ linux-source-2.6.26/fs/exec.c 2009-01-19 12:49:49.000000000 -0700
+@@ -106,7 +106,7 @@ static inline void put_binfmt(struct lin
+ *
+ * Also note that we take the address to load from from the file itself.
+ */
+-asmlinkage long sys_uselib(const char __user * library)
++SYSCALL_DEFINE1(uselib, const char __user *, library)
+ {
+ struct file * file;
+ struct nameidata nd;
+diff -urpN linux-source-2.6.26.orig/fs/filesystems.c linux-source-2.6.26/fs/filesystems.c
+--- linux-source-2.6.26.orig/fs/filesystems.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/fs/filesystems.c 2009-01-19 12:49:49.000000000 -0700
+@@ -177,7 +177,7 @@ static int fs_maxindex(void)
+ /*
+ * Whee.. Weird sysv syscall.
+ */
+-asmlinkage long sys_sysfs(int option, unsigned long arg1, unsigned long arg2)
++SYSCALL_DEFINE3(sysfs, int, option, unsigned long, arg1, unsigned long, arg2)
+ {
+ int retval = -EINVAL;
+
+diff -urpN linux-source-2.6.26.orig/fs/nfsctl.c linux-source-2.6.26/fs/nfsctl.c
+--- linux-source-2.6.26.orig/fs/nfsctl.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/fs/nfsctl.c 2009-01-19 12:49:49.000000000 -0700
+@@ -82,8 +82,8 @@ static struct {
+ },
+ };
+
+-long
+-asmlinkage sys_nfsservctl(int cmd, struct nfsctl_arg __user *arg, void __user *res)
++SYSCALL_DEFINE3(nfsservctl, int, cmd, struct nfsctl_arg __user *, arg,
++ void __user *, res)
+ {
+ struct file *file;
+ void __user *p = &arg->u;
+diff -urpN linux-source-2.6.26.orig/kernel/printk.c linux-source-2.6.26/kernel/printk.c
+--- linux-source-2.6.26.orig/kernel/printk.c 2009-01-19 11:44:54.000000000 -0700
++++ linux-source-2.6.26/kernel/printk.c 2009-01-19 12:49:49.000000000 -0700
+@@ -432,7 +432,7 @@ out:
+ return error;
+ }
+
+-asmlinkage long sys_syslog(int type, char __user *buf, int len)
++SYSCALL_DEFINE3(syslog, int, type, char __user *, buf, int, len)
+ {
+ return do_syslog(type, buf, len);
+ }
+diff -urpN linux-source-2.6.26.orig/kernel/ptrace.c linux-source-2.6.26/kernel/ptrace.c
+--- linux-source-2.6.26.orig/kernel/ptrace.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/kernel/ptrace.c 2009-01-19 12:49:49.000000000 -0700
+@@ -534,7 +534,7 @@ struct task_struct *ptrace_get_task_stru
+ #define arch_ptrace_attach(child) do { } while (0)
+ #endif
+
+-asmlinkage long sys_ptrace(long request, long pid, long addr, long data)
++SYSCALL_DEFINE4(ptrace, long, request, long, pid, long, addr, long, data)
+ {
+ struct task_struct *child;
+ long ret;
+diff -urpN linux-source-2.6.26.orig/kernel/sysctl.c linux-source-2.6.26/kernel/sysctl.c
+--- linux-source-2.6.26.orig/kernel/sysctl.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/kernel/sysctl.c 2009-01-19 12:49:49.000000000 -0700
+@@ -1533,7 +1533,7 @@ int do_sysctl(int __user *name, int nlen
+ return error;
+ }
+
+-asmlinkage long sys_sysctl(struct __sysctl_args __user *args)
++SYSCALL_DEFINE1(sysctl, struct __sysctl_args __user *, args)
+ {
+ struct __sysctl_args tmp;
+ int error;
+@@ -2744,7 +2744,7 @@ int sysctl_ms_jiffies(struct ctl_table *
+ #else /* CONFIG_SYSCTL_SYSCALL */
+
+
+-asmlinkage long sys_sysctl(struct __sysctl_args __user *args)
++SYSCALL_DEFINE1(sysctl, struct __sysctl_args __user *, args)
+ {
+ struct __sysctl_args tmp;
+ int error;
+diff -urpN linux-source-2.6.26.orig/kernel/timer.c linux-source-2.6.26/kernel/timer.c
+--- linux-source-2.6.26.orig/kernel/timer.c 2009-01-19 11:58:42.000000000 -0700
++++ linux-source-2.6.26/kernel/timer.c 2009-01-19 12:49:49.000000000 -0700
+@@ -1353,7 +1353,7 @@ out:
+ return 0;
+ }
+
+-asmlinkage long sys_sysinfo(struct sysinfo __user *info)
++SYSCALL_DEFINE1(sysinfo, struct sysinfo __user *, info)
+ {
+ struct sysinfo val;
+
+diff -urpN linux-source-2.6.26.orig/security/keys/keyctl.c linux-source-2.6.26/security/keys/keyctl.c
+--- linux-source-2.6.26.orig/security/keys/keyctl.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/security/keys/keyctl.c 2009-01-19 12:49:49.000000000 -0700
+@@ -54,11 +54,11 @@ static int key_get_type_from_user(char *
+ * - returns the new key's serial number
+ * - implements add_key()
+ */
+-asmlinkage long sys_add_key(const char __user *_type,
+- const char __user *_description,
+- const void __user *_payload,
+- size_t plen,
+- key_serial_t ringid)
++SYSCALL_DEFINE5(add_key, const char __user *, _type,
++ const char __user *, _description,
++ const void __user *, _payload,
++ size_t, plen,
++ key_serial_t, ringid)
+ {
+ key_ref_t keyring_ref, key_ref;
+ char type[32], *description;
+@@ -146,10 +146,10 @@ asmlinkage long sys_add_key(const char _
+ * - if the _callout_info string is empty, it will be rendered as "-"
+ * - implements request_key()
+ */
+-asmlinkage long sys_request_key(const char __user *_type,
+- const char __user *_description,
+- const char __user *_callout_info,
+- key_serial_t destringid)
++SYSCALL_DEFINE4(request_key, const char __user *, _type,
++ const char __user *, _description,
++ const char __user *, _callout_info,
++ key_serial_t, destringid)
+ {
+ struct key_type *ktype;
+ struct key *key;
Added: people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0038--CVE-2009-0029-System-call-wrappers-part-28.patch
==============================================================================
--- (empty file)
+++ people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0038--CVE-2009-0029-System-call-wrappers-part-28.patch Tue Jan 20 07:44:38 2009
@@ -0,0 +1,139 @@
+From 938bb9f5e840eddbf54e4f62f6c5ba9b3ae12c9d Mon Sep 17 00:00:00 2001
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+Date: Wed, 14 Jan 2009 14:14:30 +0100
+Subject: [PATCH 38/44] [CVE-2009-0029] System call wrappers part 28
+
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+
+commit 938bb9f5e840eddbf54e4f62f6c5ba9b3ae12c9d upstream.
+
+Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+
+Backported to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+
+diff -urpN linux-source-2.6.26.orig/fs/inotify_user.c linux-source-2.6.26/fs/inotify_user.c
+--- linux-source-2.6.26.orig/fs/inotify_user.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/fs/inotify_user.c 2009-01-19 12:50:36.000000000 -0700
+@@ -566,7 +566,7 @@ static const struct inotify_operations i
+ .destroy_watch = free_inotify_user_watch,
+ };
+
+-asmlinkage long sys_inotify_init(void)
++SYSCALL_DEFINE0(inotify_init)
+ {
+ struct inotify_device *dev;
+ struct inotify_handle *ih;
+diff -urpN linux-source-2.6.26.orig/fs/ioprio.c linux-source-2.6.26/fs/ioprio.c
+--- linux-source-2.6.26.orig/fs/ioprio.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/fs/ioprio.c 2009-01-19 12:50:36.000000000 -0700
+@@ -65,7 +65,7 @@ static int set_task_ioprio(struct task_s
+ return err;
+ }
+
+-asmlinkage long sys_ioprio_set(int which, int who, int ioprio)
++SYSCALL_DEFINE3(ioprio_set, int, which, int, who, int, ioprio)
+ {
+ int class = IOPRIO_PRIO_CLASS(ioprio);
+ int data = IOPRIO_PRIO_DATA(ioprio);
+@@ -181,7 +181,7 @@ int ioprio_best(unsigned short aprio, un
+ return aprio;
+ }
+
+-asmlinkage long sys_ioprio_get(int which, int who)
++SYSCALL_DEFINE2(ioprio_get, int, which, int, who)
+ {
+ struct task_struct *g, *p;
+ struct user_struct *user;
+@@ -245,4 +245,3 @@ asmlinkage long sys_ioprio_get(int which
+ read_unlock(&tasklist_lock);
+ return ret;
+ }
+-
+diff -urpN linux-source-2.6.26.orig/mm/mempolicy.c linux-source-2.6.26/mm/mempolicy.c
+--- linux-source-2.6.26.orig/mm/mempolicy.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/mm/mempolicy.c 2009-01-19 12:50:36.000000000 -0700
+@@ -1060,10 +1060,9 @@ static int copy_nodes_to_user(unsigned l
+ return copy_to_user(mask, nodes_addr(*nodes), copy) ? -EFAULT : 0;
+ }
+
+-asmlinkage long sys_mbind(unsigned long start, unsigned long len,
+- unsigned long mode,
+- unsigned long __user *nmask, unsigned long maxnode,
+- unsigned flags)
++SYSCALL_DEFINE6(mbind, unsigned long, start, unsigned long, len,
++ unsigned long, mode, unsigned long __user *, nmask,
++ unsigned long, maxnode, unsigned, flags)
+ {
+ nodemask_t nodes;
+ int err;
+@@ -1083,8 +1082,8 @@ asmlinkage long sys_mbind(unsigned long
+ }
+
+ /* Set the process memory policy */
+-asmlinkage long sys_set_mempolicy(int mode, unsigned long __user *nmask,
+- unsigned long maxnode)
++SYSCALL_DEFINE3(set_mempolicy, int, mode, unsigned long __user *, nmask,
++ unsigned long, maxnode)
+ {
+ int err;
+ nodemask_t nodes;
+@@ -1102,9 +1101,9 @@ asmlinkage long sys_set_mempolicy(int mo
+ return do_set_mempolicy(mode, flags, &nodes);
+ }
+
+-asmlinkage long sys_migrate_pages(pid_t pid, unsigned long maxnode,
+- const unsigned long __user *old_nodes,
+- const unsigned long __user *new_nodes)
++SYSCALL_DEFINE4(migrate_pages, pid_t, pid, unsigned long, maxnode,
++ const unsigned long __user *, old_nodes,
++ const unsigned long __user *, new_nodes)
+ {
+ struct mm_struct *mm;
+ struct task_struct *task;
+@@ -1172,10 +1171,9 @@ out:
+
+
+ /* Retrieve NUMA policy */
+-asmlinkage long sys_get_mempolicy(int __user *policy,
+- unsigned long __user *nmask,
+- unsigned long maxnode,
+- unsigned long addr, unsigned long flags)
++SYSCALL_DEFINE5(get_mempolicy, int __user *, policy,
++ unsigned long __user *, nmask, unsigned long, maxnode,
++ unsigned long, addr, unsigned long, flags)
+ {
+ int err;
+ int uninitialized_var(pval);
+diff -urpN linux-source-2.6.26.orig/mm/migrate.c linux-source-2.6.26/mm/migrate.c
+--- linux-source-2.6.26.orig/mm/migrate.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/mm/migrate.c 2009-01-19 12:50:36.000000000 -0700
+@@ -956,10 +956,10 @@ set_status:
+ * Move a list of pages in the address space of the currently executing
+ * process.
+ */
+-asmlinkage long sys_move_pages(pid_t pid, unsigned long nr_pages,
+- const void __user * __user *pages,
+- const int __user *nodes,
+- int __user *status, int flags)
++SYSCALL_DEFINE6(move_pages, pid_t, pid, unsigned long, nr_pages,
++ const void __user * __user *, pages,
++ const int __user *, nodes,
++ int __user *, status, int, flags)
+ {
+ int err = 0;
+ int i;
+diff -urpN linux-source-2.6.26.orig/security/keys/keyctl.c linux-source-2.6.26/security/keys/keyctl.c
+--- linux-source-2.6.26.orig/security/keys/keyctl.c 2009-01-19 12:49:49.000000000 -0700
++++ linux-source-2.6.26/security/keys/keyctl.c 2009-01-19 12:50:36.000000000 -0700
+@@ -1152,8 +1152,8 @@ long keyctl_get_security(key_serial_t ke
+ /*
+ * the key control system call
+ */
+-asmlinkage long sys_keyctl(int option, unsigned long arg2, unsigned long arg3,
+- unsigned long arg4, unsigned long arg5)
++SYSCALL_DEFINE5(keyctl, int, option, unsigned long, arg2, unsigned long, arg3,
++ unsigned long, arg4, unsigned long, arg5)
+ {
+ switch (option) {
+ case KEYCTL_GET_KEYRING_ID:
Added: people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0038pre1-missing-include.patch
==============================================================================
--- (empty file)
+++ people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0038pre1-missing-include.patch Tue Jan 20 07:44:38 2009
@@ -0,0 +1,26 @@
+commit 4f5ca265788973e3f5a1129a96ee4a9cbf587f2b
+Author: Adrian Bunk <bunk at kernel.org>
+Date: Wed Jul 23 21:27:02 2008 -0700
+
+ mm/migrate.c should #include <linux/syscalls.h>
+
+ Every file should include the headers containing the externs for its
+ global functions (in this case for sys_move_pages()).
+
+ Signed-off-by: Adrian Bunk <bunk at kernel.org>
+ Acked-by: Christoph Lameter <cl at linux-foundation.org>
+ Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
+ Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
+
+diff --git a/mm/migrate.c b/mm/migrate.c
+index 55bd355..e7d13a7 100644
+--- a/mm/migrate.c
++++ b/mm/migrate.c
+@@ -30,6 +30,7 @@
+ #include <linux/vmalloc.h>
+ #include <linux/security.h>
+ #include <linux/memcontrol.h>
++#include <linux/syscalls.h>
+
+ #include "internal.h"
+
Added: people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0039--CVE-2009-0029-System-call-wrappers-part-29.patch
==============================================================================
--- (empty file)
+++ people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0039--CVE-2009-0029-System-call-wrappers-part-29.patch Tue Jan 20 07:44:38 2009
@@ -0,0 +1,102 @@
+From 2e4d0924eb0c403ce4014fa139d1d61bf2c44fee Mon Sep 17 00:00:00 2001
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+Date: Wed, 14 Jan 2009 14:14:31 +0100
+Subject: [PATCH 39/44] [CVE-2009-0029] System call wrappers part 29
+
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+
+commit 2e4d0924eb0c403ce4014fa139d1d61bf2c44fee upstream.
+
+Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+
+Backported to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+
+diff -urpN linux-source-2.6.26.orig/fs/inotify_user.c linux-source-2.6.26/fs/inotify_user.c
+--- linux-source-2.6.26.orig/fs/inotify_user.c 2009-01-19 12:50:36.000000000 -0700
++++ linux-source-2.6.26/fs/inotify_user.c 2009-01-19 12:55:29.000000000 -0700
+@@ -638,7 +638,8 @@ out_put_fd:
+ return ret;
+ }
+
+-asmlinkage long sys_inotify_add_watch(int fd, const char __user *path, u32 mask)
++SYSCALL_DEFINE3(inotify_add_watch, int, fd, const char __user *, path,
++ u32, mask)
+ {
+ struct inode *inode;
+ struct inotify_device *dev;
+@@ -682,7 +683,7 @@ fput_and_out:
+ return ret;
+ }
+
+-asmlinkage long sys_inotify_rm_watch(int fd, u32 wd)
++SYSCALL_DEFINE2(inotify_rm_watch, int, fd, u32, wd)
+ {
+ struct file *filp;
+ struct inotify_device *dev;
+diff -urpN linux-source-2.6.26.orig/fs/namei.c linux-source-2.6.26/fs/namei.c
+--- linux-source-2.6.26.orig/fs/namei.c 2009-01-19 12:33:56.000000000 -0700
++++ linux-source-2.6.26/fs/namei.c 2009-01-19 12:54:26.000000000 -0700
+@@ -2084,8 +2084,8 @@ static int may_mknod(mode_t mode)
+ }
+ }
+
+-asmlinkage long sys_mknodat(int dfd, const char __user *filename, int mode,
+- unsigned dev)
++SYSCALL_DEFINE4(mknodat, int, dfd, const char __user *, filename, int, mode,
++ unsigned, dev)
+ {
+ int error = 0;
+ char * tmp;
+@@ -2165,7 +2165,7 @@ int vfs_mkdir(struct inode *dir, struct
+ return error;
+ }
+
+-asmlinkage long sys_mkdirat(int dfd, const char __user *pathname, int mode)
++SYSCALL_DEFINE3(mkdirat, int, dfd, const char __user *, pathname, int, mode)
+ {
+ int error = 0;
+ char * tmp;
+@@ -2408,7 +2408,7 @@ slashes:
+ goto exit2;
+ }
+
+-asmlinkage long sys_unlinkat(int dfd, const char __user *pathname, int flag)
++SYSCALL_DEFINE3(unlinkat, int, dfd, const char __user *, pathname, int, flag)
+ {
+ if ((flag & ~AT_REMOVEDIR) != 0)
+ return -EINVAL;
+@@ -2445,8 +2445,8 @@ int vfs_symlink(struct inode *dir, struc
+ return error;
+ }
+
+-asmlinkage long sys_symlinkat(const char __user *oldname,
+- int newdfd, const char __user *newname)
++SYSCALL_DEFINE3(symlinkat, const char __user *, oldname,
++ int, newdfd, const char __user *, newname)
+ {
+ int error = 0;
+ char * from;
+@@ -2539,9 +2539,8 @@ int vfs_link(struct dentry *old_dentry,
+ * with linux 2.0, and to avoid hard-linking to directories
+ * and other special files. --ADM
+ */
+-asmlinkage long sys_linkat(int olddfd, const char __user *oldname,
+- int newdfd, const char __user *newname,
+- int flags)
++SYSCALL_DEFINE5(linkat, int, olddfd, const char __user *, oldname,
++ int, newdfd, const char __user *, newname, int, flags)
+ {
+ struct dentry *new_dentry;
+ struct nameidata nd, old_nd;
+@@ -2821,8 +2820,8 @@ exit:
+ return error;
+ }
+
+-asmlinkage long sys_renameat(int olddfd, const char __user *oldname,
+- int newdfd, const char __user *newname)
++SYSCALL_DEFINE4(renameat, int, olddfd, const char __user *, oldname,
++ int, newdfd, const char __user *, newname)
+ {
+ int error;
+ char * from;
Added: people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0040--CVE-2009-0029-System-call-wrappers-part-30.patch
==============================================================================
--- (empty file)
+++ people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0040--CVE-2009-0029-System-call-wrappers-part-30.patch Tue Jan 20 07:44:38 2009
@@ -0,0 +1,129 @@
+From 6559eed8ca7db0531a207cd80be5e28cd6f213c5 Mon Sep 17 00:00:00 2001
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+Date: Wed, 14 Jan 2009 14:14:32 +0100
+Subject: [PATCH 40/44] [CVE-2009-0029] System call wrappers part 30
+
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+
+commit 6559eed8ca7db0531a207cd80be5e28cd6f213c5 upstream.
+
+Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+
+Backported to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+
+diff -urpN linux-source-2.6.26.orig/fs/open.c linux-source-2.6.26/fs/open.c
+--- linux-source-2.6.26.orig/fs/open.c 2009-01-19 12:33:56.000000000 -0700
++++ linux-source-2.6.26/fs/open.c 2009-01-19 12:56:31.000000000 -0700
+@@ -441,7 +441,7 @@ SYSCALL_ALIAS(sys_fallocate, SyS_falloca
+ * We do this by temporarily clearing all FS-related capabilities and
+ * switching the fsuid/fsgid around to the real ones.
+ */
+-asmlinkage long sys_faccessat(int dfd, const char __user *filename, int mode)
++SYSCALL_DEFINE3(faccessat, int, dfd, const char __user *, filename, int, mode)
+ {
+ struct nameidata nd;
+ int old_fsuid, old_fsgid;
+@@ -627,8 +627,7 @@ out:
+ return err;
+ }
+
+-asmlinkage long sys_fchmodat(int dfd, const char __user *filename,
+- mode_t mode)
++SYSCALL_DEFINE3(fchmodat, int, dfd, const char __user *, filename, mode_t, mode)
+ {
+ struct nameidata nd;
+ struct inode * inode;
+@@ -721,8 +720,8 @@ out:
+ return error;
+ }
+
+-asmlinkage long sys_fchownat(int dfd, const char __user *filename, uid_t user,
+- gid_t group, int flag)
++SYSCALL_DEFINE5(fchownat, int, dfd, const char __user *, filename, uid_t, user,
++ gid_t, group, int, flag)
+ {
+ struct nameidata nd;
+ int error = -EINVAL;
+@@ -1134,8 +1133,8 @@ SYSCALL_DEFINE3(open, const char __user
+ return ret;
+ }
+
+-asmlinkage long sys_openat(int dfd, const char __user *filename, int flags,
+- int mode)
++SYSCALL_DEFINE4(openat, int, dfd, const char __user *, filename, int, flags,
++ int, mode)
+ {
+ long ret;
+
+diff -urpN linux-source-2.6.26.orig/fs/stat.c linux-source-2.6.26/fs/stat.c
+--- linux-source-2.6.26.orig/fs/stat.c 2009-01-19 12:30:49.000000000 -0700
++++ linux-source-2.6.26/fs/stat.c 2009-01-19 12:57:00.000000000 -0700
+@@ -260,8 +260,8 @@ SYSCALL_DEFINE2(newlstat, char __user *,
+ }
+
+ #if !defined(__ARCH_WANT_STAT64) || defined(__ARCH_WANT_SYS_NEWFSTATAT)
+-asmlinkage long sys_newfstatat(int dfd, char __user *filename,
+- struct stat __user *statbuf, int flag)
++SYSCALL_DEFINE4(newfstatat, int, dfd, char __user *, filename,
++ struct stat __user *, statbuf, int, flag)
+ {
+ struct kstat stat;
+ int error = -EINVAL;
+@@ -293,8 +293,8 @@ SYSCALL_DEFINE2(newfstat, unsigned int,
+ return error;
+ }
+
+-asmlinkage long sys_readlinkat(int dfd, const char __user *path,
+- char __user *buf, int bufsiz)
++SYSCALL_DEFINE4(readlinkat, int, dfd, const char __user *, path,
++ char __user *, buf, int, bufsiz)
+ {
+ struct nameidata nd;
+ int error;
+@@ -400,8 +400,8 @@ SYSCALL_DEFINE2(fstat64, unsigned long,
+ return error;
+ }
+
+-asmlinkage long sys_fstatat64(int dfd, char __user *filename,
+- struct stat64 __user *statbuf, int flag)
++SYSCALL_DEFINE4(fstatat64, int, dfd, char __user *, filename,
++ struct stat64 __user *, statbuf, int, flag)
+ {
+ struct kstat stat;
+ int error = -EINVAL;
+diff -urpN linux-source-2.6.26.orig/fs/utimes.c linux-source-2.6.26/fs/utimes.c
+--- linux-source-2.6.26.orig/fs/utimes.c 2009-01-19 12:32:59.000000000 -0700
++++ linux-source-2.6.26/fs/utimes.c 2009-01-19 12:56:31.000000000 -0700
+@@ -167,7 +167,8 @@ out:
+ return error;
+ }
+
+-asmlinkage long sys_utimensat(int dfd, char __user *filename, struct timespec __user *utimes, int flags)
++SYSCALL_DEFINE4(utimensat, int, dfd, char __user *, filename,
++ struct timespec __user *, utimes, int, flags)
+ {
+ struct timespec tstimes[2];
+
+@@ -184,7 +185,8 @@ asmlinkage long sys_utimensat(int dfd, c
+ return do_utimes(dfd, filename, utimes ? tstimes : NULL, flags);
+ }
+
+-asmlinkage long sys_futimesat(int dfd, char __user *filename, struct timeval __user *utimes)
++SYSCALL_DEFINE3(futimesat, int, dfd, char __user *, filename,
++ struct timeval __user *, utimes)
+ {
+ struct timeval times[2];
+ struct timespec tstimes[2];
+diff -urpN linux-source-2.6.26.orig/kernel/fork.c linux-source-2.6.26/kernel/fork.c
+--- linux-source-2.6.26.orig/kernel/fork.c 2009-01-19 12:08:21.000000000 -0700
++++ linux-source-2.6.26/kernel/fork.c 2009-01-19 12:56:31.000000000 -0700
+@@ -1550,7 +1550,7 @@ static int unshare_fd(unsigned long unsh
+ * constructed. Here we are modifying the current, active,
+ * task_struct.
+ */
+-asmlinkage long sys_unshare(unsigned long unshare_flags)
++SYSCALL_DEFINE1(unshare, unsigned long, unshare_flags)
+ {
+ int err = 0;
+ struct fs_struct *fs, *new_fs = NULL;
Added: people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0041--CVE-2009-0029-System-call-wrappers-part-31.patch
==============================================================================
--- (empty file)
+++ people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0041--CVE-2009-0029-System-call-wrappers-part-31.patch Tue Jan 20 07:44:38 2009
@@ -0,0 +1,130 @@
+From 836f92adf121f806e9beb5b6b88bd5c9c4ea3f24 Mon Sep 17 00:00:00 2001
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+Date: Wed, 14 Jan 2009 14:14:33 +0100
+Subject: [PATCH 41/44] [CVE-2009-0029] System call wrappers part 31
+
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+
+commit 836f92adf121f806e9beb5b6b88bd5c9c4ea3f24 upstream.
+
+Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+
+Backported to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+
+diff -urpN linux-source-2.6.26.orig/fs/signalfd.c linux-source-2.6.26/fs/signalfd.c
+--- linux-source-2.6.26.orig/fs/signalfd.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/fs/signalfd.c 2009-01-19 12:58:49.000000000 -0700
+@@ -205,7 +205,8 @@ static const struct file_operations sign
+ .read = signalfd_read,
+ };
+
+-asmlinkage long sys_signalfd(int ufd, sigset_t __user *user_mask, size_t sizemask)
++SYSCALL_DEFINE3(signalfd, int, ufd, sigset_t __user *, user_mask,
++ size_t, sizemask)
+ {
+ sigset_t sigmask;
+ struct signalfd_ctx *ctx;
+diff -urpN linux-source-2.6.26.orig/fs/splice.c linux-source-2.6.26/fs/splice.c
+--- linux-source-2.6.26.orig/fs/splice.c 2009-01-10 05:42:12.000000000 -0700
++++ linux-source-2.6.26/fs/splice.c 2009-01-19 12:57:47.000000000 -0700
+@@ -1460,8 +1460,8 @@ static long vmsplice_to_pipe(struct file
+ * Currently we punt and implement it as a normal copy, see pipe_to_user().
+ *
+ */
+-asmlinkage long sys_vmsplice(int fd, const struct iovec __user *iov,
+- unsigned long nr_segs, unsigned int flags)
++SYSCALL_DEFINE4(vmsplice, int, fd, const struct iovec __user *, iov,
++ unsigned long, nr_segs, unsigned int, flags)
+ {
+ struct file *file;
+ long error;
+@@ -1486,9 +1486,9 @@ asmlinkage long sys_vmsplice(int fd, con
+ return error;
+ }
+
+-asmlinkage long sys_splice(int fd_in, loff_t __user *off_in,
+- int fd_out, loff_t __user *off_out,
+- size_t len, unsigned int flags)
++SYSCALL_DEFINE6(splice, int, fd_in, loff_t __user *, off_in,
++ int, fd_out, loff_t __user *, off_out,
++ size_t, len, unsigned int, flags)
+ {
+ long error;
+ struct file *in, *out;
+@@ -1710,7 +1710,7 @@ static long do_tee(struct file *in, stru
+ return ret;
+ }
+
+-asmlinkage long sys_tee(int fdin, int fdout, size_t len, unsigned int flags)
++SYSCALL_DEFINE4(tee, int, fdin, int, fdout, size_t, len, unsigned int, flags)
+ {
+ struct file *in;
+ int error, fput_in;
+diff -urpN linux-source-2.6.26.orig/fs/timerfd.c linux-source-2.6.26/fs/timerfd.c
+--- linux-source-2.6.26.orig/fs/timerfd.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/fs/timerfd.c 2009-01-19 12:57:47.000000000 -0700
+@@ -179,7 +179,7 @@ static struct file *timerfd_fget(int fd)
+ return file;
+ }
+
+-asmlinkage long sys_timerfd_create(int clockid, int flags)
++SYSCALL_DEFINE2(timerfd_create, int, clockid, int, flags)
+ {
+ int ufd;
+ struct timerfd_ctx *ctx;
+@@ -205,9 +205,9 @@ asmlinkage long sys_timerfd_create(int c
+ return ufd;
+ }
+
+-asmlinkage long sys_timerfd_settime(int ufd, int flags,
+- const struct itimerspec __user *utmr,
+- struct itimerspec __user *otmr)
++SYSCALL_DEFINE4(timerfd_settime, int, ufd, int, flags,
++ const struct itimerspec __user *, utmr,
++ struct itimerspec __user *, otmr)
+ {
+ struct file *file;
+ struct timerfd_ctx *ctx;
+diff -urpN linux-source-2.6.26.orig/kernel/futex.c linux-source-2.6.26/kernel/futex.c
+--- linux-source-2.6.26.orig/kernel/futex.c 2009-01-19 12:08:21.000000000 -0700
++++ linux-source-2.6.26/kernel/futex.c 2009-01-19 12:57:47.000000000 -0700
+@@ -1797,9 +1797,8 @@ pi_faulted:
+ * @head: pointer to the list-head
+ * @len: length of the list-head, as userspace expects
+ */
+-asmlinkage long
+-sys_set_robust_list(struct robust_list_head __user *head,
+- size_t len)
++SYSCALL_DEFINE2(set_robust_list, struct robust_list_head __user *, head,
++ size_t, len)
+ {
+ if (!futex_cmpxchg_enabled)
+ return -ENOSYS;
+@@ -1820,9 +1819,9 @@ sys_set_robust_list(struct robust_list_h
+ * @head_ptr: pointer to a list-head pointer, the kernel fills it in
+ * @len_ptr: pointer to a length field, the kernel fills in the header size
+ */
+-asmlinkage long
+-sys_get_robust_list(int pid, struct robust_list_head __user * __user *head_ptr,
+- size_t __user *len_ptr)
++SYSCALL_DEFINE3(get_robust_list, int, pid,
++ struct robust_list_head __user * __user *, head_ptr,
++ size_t __user *, len_ptr)
+ {
+ struct robust_list_head __user *head;
+ unsigned long ret;
+diff -urpN linux-source-2.6.26.orig/kernel/sys.c linux-source-2.6.26/kernel/sys.c
+--- linux-source-2.6.26.orig/kernel/sys.c 2009-01-19 12:49:03.000000000 -0700
++++ linux-source-2.6.26/kernel/sys.c 2009-01-19 12:57:47.000000000 -0700
+@@ -1753,8 +1753,8 @@ SYSCALL_DEFINE5(prctl, int, option, unsi
+ return error;
+ }
+
+-asmlinkage long sys_getcpu(unsigned __user *cpup, unsigned __user *nodep,
+- struct getcpu_cache __user *unused)
++SYSCALL_DEFINE3(getcpu, unsigned __user *, cpup, unsigned __user *, nodep,
++ struct getcpu_cache __user *, unused)
+ {
+ int err = 0;
+ int cpu = raw_smp_processor_id();
Added: people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0042--CVE-2009-0029-System-call-wrappers-part-32.patch
==============================================================================
--- (empty file)
+++ people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0042--CVE-2009-0029-System-call-wrappers-part-32.patch Tue Jan 20 07:44:38 2009
@@ -0,0 +1,124 @@
+From d4e82042c4cfa87a7d51710b71f568fe80132551 Mon Sep 17 00:00:00 2001
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+Date: Wed, 14 Jan 2009 14:14:34 +0100
+Subject: [PATCH 42/44] [CVE-2009-0029] System call wrappers part 32
+
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+
+commit d4e82042c4cfa87a7d51710b71f568fe80132551 upstream.
+
+Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+
+Backported to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+
+diff -urpN linux-source-2.6.26.orig/fs/eventfd.c linux-source-2.6.26/fs/eventfd.c
+--- linux-source-2.6.26.orig/fs/eventfd.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/fs/eventfd.c 2009-01-19 13:01:11.000000000 -0700
+@@ -198,7 +198,7 @@ struct file *eventfd_fget(int fd)
+ return file;
+ }
+
+-asmlinkage long sys_eventfd(unsigned int count)
++SYSCALL_DEFINE1(eventfd, unsigned int, count)
+ {
+ int fd;
+ struct eventfd_ctx *ctx;
+diff -urpN linux-source-2.6.26.orig/fs/readdir.c linux-source-2.6.26/fs/readdir.c
+--- linux-source-2.6.26.orig/fs/readdir.c 2009-01-19 12:34:46.000000000 -0700
++++ linux-source-2.6.26/fs/readdir.c 2009-01-19 13:00:22.000000000 -0700
+@@ -100,7 +100,8 @@ efault:
+ return -EFAULT;
+ }
+
+-asmlinkage long sys_old_readdir(unsigned int fd, struct old_linux_dirent __user * dirent, unsigned int count)
++SYSCALL_DEFINE3(old_readdir, unsigned int, fd,
++ struct old_linux_dirent __user *, dirent, unsigned int, count)
+ {
+ int error;
+ struct file * file;
+diff -urpN linux-source-2.6.26.orig/fs/select.c linux-source-2.6.26/fs/select.c
+--- linux-source-2.6.26.orig/fs/select.c 2009-01-19 12:43:21.000000000 -0700
++++ linux-source-2.6.26/fs/select.c 2009-01-19 13:00:22.000000000 -0700
+@@ -513,8 +513,9 @@ sticky:
+ * which has a pointer to the sigset_t itself followed by a size_t containing
+ * the sigset size.
+ */
+-asmlinkage long sys_pselect6(int n, fd_set __user *inp, fd_set __user *outp,
+- fd_set __user *exp, struct timespec __user *tsp, void __user *sig)
++SYSCALL_DEFINE6(pselect6, int, n, fd_set __user *, inp, fd_set __user *, outp,
++ fd_set __user *, exp, struct timespec __user *, tsp,
++ void __user *, sig)
+ {
+ size_t sigsetsize = 0;
+ sigset_t __user *up = NULL;
+@@ -761,9 +762,9 @@ SYSCALL_DEFINE3(poll, struct pollfd __us
+ }
+
+ #ifdef HAVE_SET_RESTORE_SIGMASK
+-asmlinkage long sys_ppoll(struct pollfd __user *ufds, unsigned int nfds,
+- struct timespec __user *tsp, const sigset_t __user *sigmask,
+- size_t sigsetsize)
++SYSCALL_DEFINE5(ppoll, struct pollfd __user *, ufds, unsigned int, nfds,
++ struct timespec __user *, tsp, const sigset_t __user *, sigmask,
++ size_t, sigsetsize)
+ {
+ sigset_t ksigmask, sigsaved;
+ struct timespec ts;
+diff -urpN linux-source-2.6.26.orig/fs/timerfd.c linux-source-2.6.26/fs/timerfd.c
+--- linux-source-2.6.26.orig/fs/timerfd.c 2009-01-19 12:57:47.000000000 -0700
++++ linux-source-2.6.26/fs/timerfd.c 2009-01-19 13:00:22.000000000 -0700
+@@ -262,7 +262,7 @@ SYSCALL_DEFINE4(timerfd_settime, int, uf
+ return 0;
+ }
+
+-asmlinkage long sys_timerfd_gettime(int ufd, struct itimerspec __user *otmr)
++SYSCALL_DEFINE2(timerfd_gettime, int, ufd, struct itimerspec __user *, otmr)
+ {
+ struct file *file;
+ struct timerfd_ctx *ctx;
+diff -urpN linux-source-2.6.26.orig/include/linux/syscalls.h linux-source-2.6.26/include/linux/syscalls.h
+--- linux-source-2.6.26.orig/include/linux/syscalls.h 2009-01-19 11:53:03.000000000 -0700
++++ linux-source-2.6.26/include/linux/syscalls.h 2009-01-19 13:00:22.000000000 -0700
+@@ -672,6 +672,13 @@ asmlinkage long sys_timerfd_gettime(int
+ asmlinkage long sys_eventfd(unsigned int count);
+ asmlinkage long sys_fallocate(int fd, int mode, loff_t offset, loff_t len);
+ asmlinkage long sys_old_readdir(unsigned int, struct old_linux_dirent __user *, unsigned int);
++asmlinkage long sys_pselect6(int, fd_set __user *, fd_set __user *,
++ fd_set __user *, struct timespec __user *,
++ void __user *);
++asmlinkage long sys_ppoll(struct pollfd __user *, unsigned int,
++ struct timespec __user *, const sigset_t __user *,
++ size_t);
++asmlinkage long sys_pipe2(int __user *, int);
+
+ int kernel_execve(const char *filename, char *const argv[], char *const envp[]);
+
+diff -urpN linux-source-2.6.26.orig/kernel/signal.c linux-source-2.6.26/kernel/signal.c
+--- linux-source-2.6.26.orig/kernel/signal.c 2009-01-19 12:13:12.000000000 -0700
++++ linux-source-2.6.26/kernel/signal.c 2009-01-19 13:00:22.000000000 -0700
+@@ -2464,11 +2464,10 @@ out:
+ #endif /* __ARCH_WANT_SYS_SIGPROCMASK */
+
+ #ifdef __ARCH_WANT_SYS_RT_SIGACTION
+-asmlinkage long
+-sys_rt_sigaction(int sig,
+- const struct sigaction __user *act,
+- struct sigaction __user *oact,
+- size_t sigsetsize)
++SYSCALL_DEFINE4(rt_sigaction, int, sig,
++ const struct sigaction __user *, act,
++ struct sigaction __user *, oact,
++ size_t, sigsetsize)
+ {
+ struct k_sigaction new_sa, old_sa;
+ int ret = -EINVAL;
+@@ -2551,7 +2550,7 @@ SYSCALL_DEFINE0(pause)
+ #endif
+
+ #ifdef __ARCH_WANT_SYS_RT_SIGSUSPEND
+-asmlinkage long sys_rt_sigsuspend(sigset_t __user *unewset, size_t sigsetsize)
++SYSCALL_DEFINE2(rt_sigsuspend, sigset_t __user *, unewset, size_t, sigsetsize)
+ {
+ sigset_t newset;
+
Added: people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0043--CVE-2009-0029-System-call-wrappers-part-33.patch
==============================================================================
--- (empty file)
+++ people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0043--CVE-2009-0029-System-call-wrappers-part-33.patch Tue Jan 20 07:44:38 2009
@@ -0,0 +1,37 @@
+From 2b66421995d2e93c9d1a0111acf2581f8529c6e5 Mon Sep 17 00:00:00 2001
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+Date: Wed, 14 Jan 2009 14:14:35 +0100
+Subject: [PATCH 43/44] [CVE-2009-0029] System call wrappers part 33
+
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+
+commit 2b66421995d2e93c9d1a0111acf2581f8529c6e5 upstream.
+
+Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+
+Adjusted to apply to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+
+diff -urpN linux-source-2.6.26.orig/fs/pipe.c linux-source-2.6.26/fs/pipe.c
+--- linux-source-2.6.26.orig/fs/pipe.c 2009-01-19 13:00:22.000000000 -0700
++++ linux-source-2.6.26/fs/pipe.c 2009-01-19 13:05:38.000000000 -0700
+@@ -1078,7 +1078,7 @@ int do_pipe(int *fd)
+ * sys_pipe() is the normal C calling standard for creating
+ * a pipe. It's not the way Unix traditionally does this, though.
+ */
+-asmlinkage long sys_pipe(int __user *fildes)
++SYSCALL_DEFINE1(pipe, int __user *, fildes)
+ {
+ int fd[2];
+ int error;
+diff -urpN linux-source-2.6.26.orig/include/linux/syscalls.h linux-source-2.6.26/include/linux/syscalls.h
+--- linux-source-2.6.26.orig/include/linux/syscalls.h 2009-01-19 13:00:22.000000000 -0700
++++ linux-source-2.6.26/include/linux/syscalls.h 2009-01-19 13:05:11.000000000 -0700
+@@ -679,6 +679,7 @@ asmlinkage long sys_ppoll(struct pollfd
+ struct timespec __user *, const sigset_t __user *,
+ size_t);
+ asmlinkage long sys_pipe2(int __user *, int);
++asmlinkage long sys_pipe(int __user *);
+
+ int kernel_execve(const char *filename, char *const argv[], char *const envp[]);
+
Added: people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0044--CVE-2009-0029-s390-specific-system-call-wrappers.patch
==============================================================================
--- (empty file)
+++ people/dannf/sid+CVE-2009-0029/debian/patches/bugfix/all/0044--CVE-2009-0029-s390-specific-system-call-wrappers.patch Tue Jan 20 07:44:38 2009
@@ -0,0 +1,354 @@
+From 26689452f5ca201add63b1b1ff0dbcf82d6885e7 Mon Sep 17 00:00:00 2001
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+Date: Wed, 14 Jan 2009 14:14:36 +0100
+Subject: [PATCH 44/44] [CVE-2009-0029] s390 specific system call wrappers
+
+From: Heiko Carstens <heiko.carstens at de.ibm.com>
+
+commit 26689452f5ca201add63b1b1ff0dbcf82d6885e7 upstream.
+
+Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
+Signed-off-by: Greg Kroah-Hartman <gregkh at suse.de>
+
+Adjusted to apply to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+
+diff -urpN linux-source-2.6.26.orig/arch/s390/kernel/compat_wrapper.S linux-source-2.6.26/arch/s390/kernel/compat_wrapper.S
+--- linux-source-2.6.26.orig/arch/s390/kernel/compat_wrapper.S 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/arch/s390/kernel/compat_wrapper.S 2009-01-19 13:06:27.000000000 -0700
+@@ -549,7 +549,7 @@ sys32_setdomainname_wrapper:
+ .globl sys32_newuname_wrapper
+ sys32_newuname_wrapper:
+ llgtr %r2,%r2 # struct new_utsname *
+- jg s390x_newuname # branch to system call
++ jg sys_s390_newuname # branch to system call
+
+ .globl compat_sys_adjtimex_wrapper
+ compat_sys_adjtimex_wrapper:
+@@ -617,7 +617,7 @@ sys32_sysfs_wrapper:
+ .globl sys32_personality_wrapper
+ sys32_personality_wrapper:
+ llgfr %r2,%r2 # unsigned long
+- jg s390x_personality # branch to system call
++ jg sys_s390_personality # branch to system call
+
+ .globl sys32_setfsuid16_wrapper
+ sys32_setfsuid16_wrapper:
+diff -urpN linux-source-2.6.26.orig/arch/s390/kernel/entry.h linux-source-2.6.26/arch/s390/kernel/entry.h
+--- linux-source-2.6.26.orig/arch/s390/kernel/entry.h 2009-01-19 11:38:32.000000000 -0700
++++ linux-source-2.6.26/arch/s390/kernel/entry.h 2009-01-19 13:06:27.000000000 -0700
+@@ -31,21 +31,22 @@ struct old_sigaction;
+ struct sel_arg_struct;
+
+ long sys_mmap2(struct mmap_arg_struct __user *arg);
+-long old_mmap(struct mmap_arg_struct __user *arg);
++long sys_s390_old_mmap(struct mmap_arg_struct __user *arg);
+ long sys_ipc(uint call, int first, unsigned long second,
+ unsigned long third, void __user *ptr);
+-long s390x_newuname(struct new_utsname __user *name);
+-long s390x_personality(unsigned long personality);
+-long s390_fadvise64(int fd, u32 offset_high, u32 offset_low,
++long sys_s390_newuname(struct new_utsname __user *name);
++long sys_s390_personality(unsigned long personality);
++long sys_s390_fadvise64(int fd, u32 offset_high, u32 offset_low,
+ size_t len, int advice);
+-long s390_fadvise64_64(struct fadvise64_64_args __user *args);
+-long s390_fallocate(int fd, int mode, loff_t offset, u32 len_high, u32 len_low);
++long sys_s390_fadvise64_64(struct fadvise64_64_args __user *args);
++long sys_s390_fallocate(int fd, int mode, loff_t offset, u32 len_high,
++ u32 len_low);
+ long sys_fork(void);
+ long sys_clone(void);
+ long sys_vfork(void);
+ void execve_tail(void);
+ long sys_execve(void);
+-int sys_sigsuspend(int history0, int history1, old_sigset_t mask);
++long sys_sigsuspend(int history0, int history1, old_sigset_t mask);
+ long sys_sigaction(int sig, const struct old_sigaction __user *act,
+ struct old_sigaction __user *oact);
+ long sys_sigaltstack(const stack_t __user *uss, stack_t __user *uoss);
+diff -urpN linux-source-2.6.26.orig/arch/s390/kernel/process.c linux-source-2.6.26/arch/s390/kernel/process.c
+--- linux-source-2.6.26.orig/arch/s390/kernel/process.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/arch/s390/kernel/process.c 2009-01-19 13:06:27.000000000 -0700
+@@ -38,6 +38,7 @@
+ #include <linux/utsname.h>
+ #include <linux/tick.h>
+ #include <linux/elfcore.h>
++#include <linux/syscalls.h>
+ #include <asm/uaccess.h>
+ #include <asm/pgtable.h>
+ #include <asm/system.h>
+@@ -283,13 +284,13 @@ int copy_thread(int nr, unsigned long cl
+ return 0;
+ }
+
+-asmlinkage long sys_fork(void)
++SYSCALL_DEFINE0(fork)
+ {
+ struct pt_regs *regs = task_pt_regs(current);
+ return do_fork(SIGCHLD, regs->gprs[15], regs, 0, NULL, NULL);
+ }
+
+-asmlinkage long sys_clone(void)
++SYSCALL_DEFINE0(clone)
+ {
+ struct pt_regs *regs = task_pt_regs(current);
+ unsigned long clone_flags;
+@@ -316,7 +317,7 @@ asmlinkage long sys_clone(void)
+ * do not have enough call-clobbered registers to hold all
+ * the information you need.
+ */
+-asmlinkage long sys_vfork(void)
++SYSCALL_DEFINE0(vfork)
+ {
+ struct pt_regs *regs = task_pt_regs(current);
+ return do_fork(CLONE_VFORK | CLONE_VM | SIGCHLD,
+@@ -336,7 +337,7 @@ asmlinkage void execve_tail(void)
+ /*
+ * sys_execve() executes a new program.
+ */
+-asmlinkage long sys_execve(void)
++SYSCALL_DEFINE0(execve)
+ {
+ struct pt_regs *regs = task_pt_regs(current);
+ char *filename;
+diff -urpN linux-source-2.6.26.orig/arch/s390/kernel/signal.c linux-source-2.6.26/arch/s390/kernel/signal.c
+--- linux-source-2.6.26.orig/arch/s390/kernel/signal.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/arch/s390/kernel/signal.c 2009-01-19 13:06:47.000000000 -0700
+@@ -24,6 +24,7 @@
+ #include <linux/tty.h>
+ #include <linux/personality.h>
+ #include <linux/binfmts.h>
++#include <linux/syscalls.h>
+ #include <asm/ucontext.h>
+ #include <asm/uaccess.h>
+ #include <asm/lowcore.h>
+@@ -52,8 +53,7 @@ typedef struct
+ /*
+ * Atomically swap in the new signal mask, and wait for a signal.
+ */
+-asmlinkage int
+-sys_sigsuspend(int history0, int history1, old_sigset_t mask)
++SYSCALL_DEFINE3(sigsuspend, int, history0, int, history1, old_sigset_t, mask)
+ {
+ mask &= _BLOCKABLE;
+ spin_lock_irq(¤t->sighand->siglock);
+@@ -69,9 +69,8 @@ sys_sigsuspend(int history0, int history
+ return -ERESTARTNOHAND;
+ }
+
+-asmlinkage long
+-sys_sigaction(int sig, const struct old_sigaction __user *act,
+- struct old_sigaction __user *oact)
++SYSCALL_DEFINE3(sigaction, int, sig, const struct old_sigaction __user *, act,
++ struct old_sigaction __user *, oact)
+ {
+ struct k_sigaction new_ka, old_ka;
+ int ret;
+@@ -101,15 +100,13 @@ sys_sigaction(int sig, const struct old_
+ return ret;
+ }
+
+-asmlinkage long
+-sys_sigaltstack(const stack_t __user *uss, stack_t __user *uoss)
++SYSCALL_DEFINE2(sigaltstack, const stack_t __user *, uss,
++ stack_t __user *, uoss)
+ {
+ struct pt_regs *regs = task_pt_regs(current);
+ return do_sigaltstack(uss, uoss, regs->gprs[15]);
+ }
+
+-
+-
+ /* Returns non-zero on fault. */
+ static int save_sigregs(struct pt_regs *regs, _sigregs __user *sregs)
+ {
+@@ -163,7 +160,7 @@ static int restore_sigregs(struct pt_reg
+ return 0;
+ }
+
+-asmlinkage long sys_sigreturn(void)
++SYSCALL_DEFINE0(sigreturn)
+ {
+ struct pt_regs *regs = task_pt_regs(current);
+ sigframe __user *frame = (sigframe __user *)regs->gprs[15];
+@@ -190,7 +187,7 @@ badframe:
+ return 0;
+ }
+
+-asmlinkage long sys_rt_sigreturn(void)
++SYSCALL_DEFINE0(rt_sigreturn)
+ {
+ struct pt_regs *regs = task_pt_regs(current);
+ rt_sigframe __user *frame = (rt_sigframe __user *)regs->gprs[15];
+diff -urpN linux-source-2.6.26.orig/arch/s390/kernel/syscalls.S linux-source-2.6.26/arch/s390/kernel/syscalls.S
+--- linux-source-2.6.26.orig/arch/s390/kernel/syscalls.S 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/arch/s390/kernel/syscalls.S 2009-01-19 13:06:27.000000000 -0700
+@@ -98,7 +98,7 @@ SYSCALL(sys_uselib,sys_uselib,sys32_usel
+ SYSCALL(sys_swapon,sys_swapon,sys32_swapon_wrapper)
+ SYSCALL(sys_reboot,sys_reboot,sys32_reboot_wrapper)
+ SYSCALL(sys_ni_syscall,sys_ni_syscall,old32_readdir_wrapper) /* old readdir syscall */
+-SYSCALL(old_mmap,old_mmap,old32_mmap_wrapper) /* 90 */
++SYSCALL(sys_s390_old_mmap,sys_s390_old_mmap,old32_mmap_wrapper) /* 90 */
+ SYSCALL(sys_munmap,sys_munmap,sys32_munmap_wrapper)
+ SYSCALL(sys_truncate,sys_truncate,sys32_truncate_wrapper)
+ SYSCALL(sys_ftruncate,sys_ftruncate,sys32_ftruncate_wrapper)
+@@ -130,7 +130,7 @@ SYSCALL(sys_fsync,sys_fsync,sys32_fsync_
+ SYSCALL(sys_sigreturn,sys_sigreturn,sys32_sigreturn)
+ SYSCALL(sys_clone,sys_clone,sys32_clone) /* 120 */
+ SYSCALL(sys_setdomainname,sys_setdomainname,sys32_setdomainname_wrapper)
+-SYSCALL(sys_newuname,s390x_newuname,sys32_newuname_wrapper)
++SYSCALL(sys_newuname,sys_s390_newuname,sys32_newuname_wrapper)
+ NI_SYSCALL /* modify_ldt for i386 */
+ SYSCALL(sys_adjtimex,sys_adjtimex,compat_sys_adjtimex_wrapper)
+ SYSCALL(sys_mprotect,sys_mprotect,sys32_mprotect_wrapper) /* 125 */
+@@ -144,7 +144,7 @@ SYSCALL(sys_getpgid,sys_getpgid,sys32_ge
+ SYSCALL(sys_fchdir,sys_fchdir,sys32_fchdir_wrapper)
+ SYSCALL(sys_bdflush,sys_bdflush,sys32_bdflush_wrapper)
+ SYSCALL(sys_sysfs,sys_sysfs,sys32_sysfs_wrapper) /* 135 */
+-SYSCALL(sys_personality,s390x_personality,sys32_personality_wrapper)
++SYSCALL(sys_personality,sys_s390_personality,sys32_personality_wrapper)
+ NI_SYSCALL /* for afs_syscall */
+ SYSCALL(sys_setfsuid16,sys_ni_syscall,sys32_setfsuid16_wrapper) /* old setfsuid16 syscall */
+ SYSCALL(sys_setfsgid16,sys_ni_syscall,sys32_setfsgid16_wrapper) /* old setfsgid16 syscall */
+@@ -261,7 +261,7 @@ SYSCALL(sys_epoll_create,sys_epoll_creat
+ SYSCALL(sys_epoll_ctl,sys_epoll_ctl,sys_epoll_ctl_wrapper) /* 250 */
+ SYSCALL(sys_epoll_wait,sys_epoll_wait,sys_epoll_wait_wrapper)
+ SYSCALL(sys_set_tid_address,sys_set_tid_address,sys32_set_tid_address_wrapper)
+-SYSCALL(s390_fadvise64,sys_fadvise64_64,sys32_fadvise64_wrapper)
++SYSCALL(sys_s390_fadvise64,sys_fadvise64_64,sys32_fadvise64_wrapper)
+ SYSCALL(sys_timer_create,sys_timer_create,sys32_timer_create_wrapper)
+ SYSCALL(sys_timer_settime,sys_timer_settime,sys32_timer_settime_wrapper) /* 255 */
+ SYSCALL(sys_timer_gettime,sys_timer_gettime,sys32_timer_gettime_wrapper)
+@@ -272,7 +272,7 @@ SYSCALL(sys_clock_gettime,sys_clock_gett
+ SYSCALL(sys_clock_getres,sys_clock_getres,sys32_clock_getres_wrapper)
+ SYSCALL(sys_clock_nanosleep,sys_clock_nanosleep,sys32_clock_nanosleep_wrapper)
+ NI_SYSCALL /* reserved for vserver */
+-SYSCALL(s390_fadvise64_64,sys_ni_syscall,sys32_fadvise64_64_wrapper)
++SYSCALL(sys_s390_fadvise64_64,sys_ni_syscall,sys32_fadvise64_64_wrapper)
+ SYSCALL(sys_statfs64,sys_statfs64,compat_sys_statfs64_wrapper)
+ SYSCALL(sys_fstatfs64,sys_fstatfs64,compat_sys_fstatfs64_wrapper)
+ SYSCALL(sys_remap_file_pages,sys_remap_file_pages,sys32_remap_file_pages_wrapper)
+@@ -322,7 +322,7 @@ NI_SYSCALL /* 310 sys_move_pages *
+ SYSCALL(sys_getcpu,sys_getcpu,sys_getcpu_wrapper)
+ SYSCALL(sys_epoll_pwait,sys_epoll_pwait,compat_sys_epoll_pwait_wrapper)
+ SYSCALL(sys_utimes,sys_utimes,compat_sys_utimes_wrapper)
+-SYSCALL(s390_fallocate,sys_fallocate,sys_fallocate_wrapper)
++SYSCALL(sys_s390_fallocate,sys_fallocate,sys_fallocate_wrapper)
+ SYSCALL(sys_utimensat,sys_utimensat,compat_sys_utimensat_wrapper) /* 315 */
+ SYSCALL(sys_signalfd,sys_signalfd,compat_sys_signalfd_wrapper)
+ NI_SYSCALL /* 317 old sys_timer_fd */
+diff -urpN linux-source-2.6.26.orig/arch/s390/kernel/sys_s390.c linux-source-2.6.26/arch/s390/kernel/sys_s390.c
+--- linux-source-2.6.26.orig/arch/s390/kernel/sys_s390.c 2008-07-13 15:51:29.000000000 -0600
++++ linux-source-2.6.26/arch/s390/kernel/sys_s390.c 2009-01-19 13:06:27.000000000 -0700
+@@ -29,6 +29,7 @@
+ #include <linux/personality.h>
+ #include <linux/unistd.h>
+ #include <linux/ipc.h>
++#include <linux/syscalls.h>
+ #include <asm/uaccess.h>
+ #include "entry.h"
+
+@@ -74,7 +75,7 @@ struct mmap_arg_struct {
+ unsigned long offset;
+ };
+
+-asmlinkage long sys_mmap2(struct mmap_arg_struct __user *arg)
++SYSCALL_DEFINE1(mmap2, struct mmap_arg_struct __user *, arg)
+ {
+ struct mmap_arg_struct a;
+ int error = -EFAULT;
+@@ -86,7 +87,7 @@ out:
+ return error;
+ }
+
+-asmlinkage long old_mmap(struct mmap_arg_struct __user *arg)
++SYSCALL_DEFINE1(s390_old_mmap, struct mmap_arg_struct __user *, arg)
+ {
+ struct mmap_arg_struct a;
+ long error = -EFAULT;
+@@ -127,8 +128,8 @@ asmlinkage long old_select(struct sel_ar
+ *
+ * This is really horribly ugly.
+ */
+-asmlinkage long sys_ipc(uint call, int first, unsigned long second,
+- unsigned long third, void __user *ptr)
++SYSCALL_DEFINE5(ipc, uint, call, int, first, unsigned long, second,
++ unsigned long, third, void __user *, ptr)
+ {
+ struct ipc_kludge tmp;
+ int ret;
+@@ -194,7 +195,7 @@ asmlinkage long sys_ipc(uint call, int f
+ }
+
+ #ifdef CONFIG_64BIT
+-asmlinkage long s390x_newuname(struct new_utsname __user *name)
++SYSCALL_DEFINE1(s390_newuname, struct new_utsname __user *, name)
+ {
+ int ret = sys_newuname(name);
+
+@@ -205,7 +206,7 @@ asmlinkage long s390x_newuname(struct ne
+ return ret;
+ }
+
+-asmlinkage long s390x_personality(unsigned long personality)
++SYSCALL_DEFINE1(s390_personality, unsigned long, personality)
+ {
+ int ret;
+
+@@ -224,15 +225,13 @@ asmlinkage long s390x_personality(unsign
+ */
+ #ifndef CONFIG_64BIT
+
+-asmlinkage long
+-s390_fadvise64(int fd, u32 offset_high, u32 offset_low, size_t len, int advice)
++SYSCALL_DEFINE5(s390_fadvise64, int, fd, u32, offset_high, u32, offset_low,
++ size_t, len, int, advice)
+ {
+ return sys_fadvise64(fd, (u64) offset_high << 32 | offset_low,
+ len, advice);
+ }
+
+-#endif
+-
+ struct fadvise64_64_args {
+ int fd;
+ long long offset;
+@@ -240,8 +239,7 @@ struct fadvise64_64_args {
+ int advice;
+ };
+
+-asmlinkage long
+-s390_fadvise64_64(struct fadvise64_64_args __user *args)
++SYSCALL_DEFINE1(s390_fadvise64_64, struct fadvise64_64_args __user *, args)
+ {
+ struct fadvise64_64_args a;
+
+@@ -250,7 +248,6 @@ s390_fadvise64_64(struct fadvise64_64_ar
+ return sys_fadvise64_64(a.fd, a.offset, a.len, a.advice);
+ }
+
+-#ifndef CONFIG_64BIT
+ /*
+ * This is a wrapper to call sys_fallocate(). For 31 bit s390 the last
+ * 64 bit argument "len" is split into the upper and lower 32 bits. The
+@@ -263,9 +260,19 @@ s390_fadvise64_64(struct fadvise64_64_ar
+ * to
+ * %r2: fd, %r3: mode, %r4/%r5: offset, 96(%r15)-103(%r15): len
+ */
+-asmlinkage long s390_fallocate(int fd, int mode, loff_t offset,
++SYSCALL_DEFINE(s390_fallocate)(int fd, int mode, loff_t offset,
+ u32 len_high, u32 len_low)
+ {
+ return sys_fallocate(fd, mode, offset, ((u64)len_high << 32) | len_low);
+ }
++#ifdef CONFIG_HAVE_SYSCALL_WRAPPERS
++asmlinkage long SyS_s390_fallocate(long fd, long mode, loff_t offset,
++ long len_high, long len_low)
++{
++ return SYSC_s390_fallocate((int) fd, (int) mode, offset,
++ (u32) len_high, (u32) len_low);
++}
++SYSCALL_ALIAS(sys_s390_fallocate, SyS_s390_fallocate);
++#endif
++
+ #endif
Modified: people/dannf/sid+CVE-2009-0029/debian/patches/features/all/openvz/openvz.patch
==============================================================================
--- people/dannf/sid+CVE-2009-0029/debian/patches/features/all/openvz/openvz.patch (original)
+++ people/dannf/sid+CVE-2009-0029/debian/patches/features/all/openvz/openvz.patch Tue Jan 20 07:44:38 2009
@@ -8027,7 +8027,7 @@
}
+EXPORT_SYMBOL_GPL(sys_dup2);
- asmlinkage long sys_dup(unsigned int fildes)
+ SYSCALL_DEFINE1(dup, unsigned int, fildes)
{
@@ -199,6 +200,9 @@ static int setfl(int fd, struct file * filp, unsigned long arg)
struct inode * inode = filp->f_path.dentry->d_inode;
@@ -9024,8 +9024,8 @@
}
+EXPORT_SYMBOL(sys_inotify_init);
- asmlinkage long sys_inotify_add_watch(int fd, const char __user *path, u32 mask)
- {
+ SYSCALL_DEFINE3(inotify_add_watch, int, fd, const char __user *, path,
+ u32, mask)
@@ -673,7 +635,7 @@ asmlinkage long sys_inotify_add_watch(int fd, const char __user *path, u32 mask)
mutex_lock(&dev->up_mutex);
ret = inotify_find_update_watch(dev->ih, inode, mask);
@@ -9967,14 +9967,14 @@
if (!error && copy_to_user(buf, &tmp, sizeof(tmp)))
error = -EFAULT;
fput(file);
-@@ -701,6 +725,7 @@ out_release:
+@@ -719,6 +743,7 @@ out_release:
out:
return error;
}
+EXPORT_SYMBOL_GPL(sys_chown);
- asmlinkage long sys_fchownat(int dfd, const char __user *filename, uid_t user,
- gid_t group, int flag)
+ SYSCALL_DEFINE5(fchownat, int, dfd, const char __user *, filename, uid_t, user,
+ gid_t, group, int, flag)
@@ -939,6 +964,7 @@ struct file *nameidata_to_filp(struct nameidata *nd, int flags)
return filp;
}
@@ -9993,14 +9993,14 @@
error = -ENFILE;
f = get_empty_filp();
if (f == NULL) {
-@@ -1115,6 +1144,7 @@ asmlinkage long sys_open(const char __user *filename, int flags, int mode)
+@@ -1132,6 +1161,7 @@ SYSCALL_DEFINE3(open, const char __user
asmlinkage_protect(3, ret, filename, flags, mode);
return ret;
}
+EXPORT_SYMBOL_GPL(sys_open);
- asmlinkage long sys_openat(int dfd, const char __user *filename, int flags,
- int mode)
+ SYSCALL_DEFINE4(openat, int, dfd, const char __user *, filename, int, flags,
+ int, mode)
diff --git a/fs/partitions/check.c b/fs/partitions/check.c
index 6149e4b..c904faa 100644
--- a/fs/partitions/check.c
@@ -11579,7 +11579,7 @@
const struct file_operations generic_ro_fops = {
.llseek = generic_file_llseek,
.read = do_sync_read,
-@@ -350,6 +352,29 @@ static inline void file_pos_write(struct file *file, loff_t pos)
+@@ -350,6 +352,29 @@ static inline void file_pos_write(struct
file->f_pos = pos;
}
@@ -11606,7 +11606,7 @@
+}
+
+
- asmlinkage ssize_t sys_read(unsigned int fd, char __user * buf, size_t count)
+ SYSCALL_DEFINE3(read, unsigned int, fd, char __user *, buf, size_t, count)
{
struct file *file;
@@ -362,6 +387,8 @@ asmlinkage ssize_t sys_read(unsigned int fd, char __user * buf, size_t count)
@@ -11744,14 +11744,14 @@
{
struct pollfd __user *ufds = (struct pollfd __user*)restart_block->arg0;
int nfds = restart_block->arg1;
-@@ -726,6 +729,7 @@ static long do_restart_poll(struct restart_block *restart_block)
+@@ -727,6 +730,7 @@ static long do_restart_poll(struct resta
}
return ret;
}
+EXPORT_SYMBOL_GPL(do_restart_poll);
- asmlinkage long sys_poll(struct pollfd __user *ufds, unsigned int nfds,
- long timeout_msecs)
+ SYSCALL_DEFINE3(poll, struct pollfd __user *, ufds, unsigned int, nfds,
+ long, timeout_msecs)
diff --git a/fs/seq_file.c b/fs/seq_file.c
index 3f54dbd..4d8b86a 100644
--- a/fs/seq_file.c
@@ -12255,7 +12255,7 @@
}
+EXPORT_SYMBOL(user_get_super);
- asmlinkage long sys_ustat(unsigned dev, struct ustat __user * ubuf)
+ SYSCALL_DEFINE2(ustat, unsigned, dev, struct ustat __user *, ubuf)
{
+ dev_t kdev;
struct super_block *s;
@@ -12336,7 +12336,7 @@
@@ -38,7 +40,14 @@ static void do_sync(unsigned long wait)
- asmlinkage long sys_sync(void)
+ SYSCALL_DEFINE0(sync)
{
+ struct user_beancounter *ub;
+
@@ -62468,7 +62468,7 @@
{
struct user_struct *new_user;
-@@ -868,8 +985,27 @@ asmlinkage long sys_setfsgid(gid_t gid)
+@@ -869,8 +986,27 @@ SYSCALL_DEFINE1(setfsgid, gid_t, gid)
return old_fsgid;
}
@@ -62487,7 +62487,7 @@
+}
+#endif
+
- asmlinkage long sys_times(struct tms __user * tbuf)
+ SYSCALL_DEFINE1(times, struct tms __user *, tbuf)
{
+#ifdef CONFIG_VE
+ struct timespec now;
@@ -67379,13 +67379,13 @@
}
static int do_mlock(unsigned long start, size_t len, int on)
-@@ -157,6 +173,7 @@ asmlinkage long sys_mlock(unsigned long start, size_t len)
+@@ -155,6 +171,7 @@ SYSCALL_DEFINE2(mlock, unsigned long, st
up_write(¤t->mm->mmap_sem);
return error;
}
+EXPORT_SYMBOL_GPL(sys_mlock);
- asmlinkage long sys_munlock(unsigned long start, size_t len)
+ SYSCALL_DEFINE2(munlock, unsigned long, start, size_t, len)
{
@@ -169,6 +186,7 @@ asmlinkage long sys_munlock(unsigned long start, size_t len)
up_write(¤t->mm->mmap_sem);
Modified: people/dannf/sid+CVE-2009-0029/debian/patches/features/all/vserver/vs2.3.0.35.patch
==============================================================================
--- people/dannf/sid+CVE-2009-0029/debian/patches/features/all/vserver/vs2.3.0.35.patch (original)
+++ people/dannf/sid+CVE-2009-0029/debian/patches/features/all/vserver/vs2.3.0.35.patch Tue Jan 20 07:44:38 2009
@@ -756,7 +756,7 @@
SYSCALL(sys_clock_nanosleep,sys_clock_nanosleep,sys32_clock_nanosleep_wrapper)
-NI_SYSCALL /* reserved for vserver */
+SYSCALL(sys_vserver,sys_vserver,sys32_vserver)
- SYSCALL(s390_fadvise64_64,sys_ni_syscall,sys32_fadvise64_64_wrapper)
+ SYSCALL(sys_s390_fadvise64_64,sys_ni_syscall,sys32_fadvise64_64_wrapper)
SYSCALL(sys_statfs64,sys_statfs64,compat_sys_statfs64_wrapper)
SYSCALL(sys_fstatfs64,sys_fstatfs64,compat_sys_fstatfs64_wrapper)
--- a/arch/s390/mm/fault.c 2008-07-14 17:22:29.000000000 -0400
@@ -16984,16 +16984,16 @@
/**
* sys_getpid - return the thread group id of the current process
-@@ -1123,10 +1121,23 @@ asmlinkage long sys_getppid(void)
+@@ -1123,10 +1121,23 @@ SYSCALL_DEFINE0(getppid)
rcu_read_lock();
pid = task_tgid_vnr(current->real_parent);
rcu_read_unlock();
+ return vx_map_pid(pid);
+}
++
++#ifdef __alpha__
- return pid;
-+#ifdef __alpha__
-+
+/*
+ * The Alpha uses getxpid, getxuid, and getxgid instead.
+ */
@@ -17006,7 +17006,7 @@
+#else /* _alpha_ */
+
- asmlinkage long sys_getuid(void)
+ SYSCALL_DEFINE0(getuid)
{
/* Only we change this so SMP safe */
@@ -1297,6 +1308,8 @@ int do_sysinfo(struct sysinfo *info)
@@ -25825,9 +25825,9 @@
out:
return ret;
}
-@@ -134,7 +135,7 @@ static int do_mlock(unsigned long start,
+@@ -132,7 +133,7 @@ static int do_mlock(unsigned long start,
- asmlinkage long sys_mlock(unsigned long start, size_t len)
+ SYSCALL_DEFINE2(mlock, unsigned long, start, size_t, len)
{
- unsigned long locked;
+ unsigned long locked, grow;
Modified: people/dannf/sid+CVE-2009-0029/debian/patches/features/all/xen/suse-20080808143035.patch
==============================================================================
--- people/dannf/sid+CVE-2009-0029/debian/patches/features/all/xen/suse-20080808143035.patch (original)
+++ people/dannf/sid+CVE-2009-0029/debian/patches/features/all/xen/suse-20080808143035.patch Tue Jan 20 07:44:38 2009
@@ -96759,7 +96759,7 @@
/* sys_io_setup:
* Create an aio_context capable of receiving at least nr_events.
* ctxp must not point to an aio_context that already exists, and
-@@ -1259,18 +1348,30 @@ static void io_destroy(struct kioctx *ioctx)
+@@ -1259,18 +1348,30 @@ static void io_destroy(struct kioctx *io
* resources are available. May fail with -EFAULT if an invalid
* pointer is passed for ctxp. Will fail with -ENOSYS if not
* implemented.
@@ -96769,7 +96769,7 @@
+ * This keeps the system call compatible, since a non-zero value
+ * was not allowed so far.
*/
- asmlinkage long sys_io_setup(unsigned nr_events, aio_context_t __user *ctxp)
+ SYSCALL_DEFINE2(io_setup, unsigned, nr_events, aio_context_t __user *, ctxp)
{
struct kioctx *ioctx = NULL;
unsigned long ctx;
Modified: people/dannf/sid+CVE-2009-0029/debian/patches/series/14
==============================================================================
--- people/dannf/sid+CVE-2009-0029/debian/patches/series/14 (original)
+++ people/dannf/sid+CVE-2009-0029/debian/patches/series/14 Tue Jan 20 07:44:38 2009
@@ -1,2 +1,48 @@
+ features/all/alsa-hda-support-acer-aspire-one.patch
+ bugfix/all/sctp-avoid-memory-overflow.patch
++ bugfix/all/0001--CVE-2009-0029-Move-compat-system-call-declarations.patch
++ bugfix/all/0002--CVE-2009-0029-Convert-all-system-calls-to-return-a.patch
++ bugfix/all/0003--CVE-2009-0029-Rename-old_readdir-to-sys_old_readdi.patch
++ bugfix/all/0004pre1-ia64-kill-sys32_pipe.patch
++ bugfix/all/0004--CVE-2009-0029-Remove-__attribute__-weak-from-sy.patch
++ bugfix/all/0005--CVE-2009-0029-Make-sys_pselect7-static.patch
++ bugfix/all/0006--CVE-2009-0029-Make-sys_syslog-a-conditional-system.patch
++ bugfix/all/0007--CVE-2009-0029-System-call-wrapper-infrastructure.patch
++ bugfix/all/0008--CVE-2009-0029-powerpc-Enable-syscall-wrappers-for.patch
++ bugfix/all/0009--CVE-2009-0029-s390-enable-system-call-wrappers.patch
++ bugfix/all/0010--CVE-2009-0029-System-call-wrapper-special-cases.patch
++ bugfix/all/0011--CVE-2009-0029-System-call-wrappers-part-01.patch
++ bugfix/all/0012--CVE-2009-0029-System-call-wrappers-part-02.patch
++ bugfix/all/0013--CVE-2009-0029-System-call-wrappers-part-03.patch
++ bugfix/all/0014--CVE-2009-0029-System-call-wrappers-part-04.patch
++ bugfix/all/0015--CVE-2009-0029-System-call-wrappers-part-05.patch
++ bugfix/all/0016--CVE-2009-0029-System-call-wrappers-part-06.patch
++ bugfix/all/0017--CVE-2009-0029-System-call-wrappers-part-07.patch
++ bugfix/all/0018--CVE-2009-0029-System-call-wrappers-part-08.patch
++ bugfix/all/0019--CVE-2009-0029-System-call-wrappers-part-09.patch
++ bugfix/all/0020--CVE-2009-0029-System-call-wrappers-part-10.patch
++ bugfix/all/0021--CVE-2009-0029-System-call-wrappers-part-11.patch
++ bugfix/all/0022--CVE-2009-0029-System-call-wrappers-part-12.patch
++ bugfix/all/0023--CVE-2009-0029-System-call-wrappers-part-13.patch
++ bugfix/all/0024--CVE-2009-0029-System-call-wrappers-part-14.patch
++ bugfix/all/0025--CVE-2009-0029-System-call-wrappers-part-15.patch
++ bugfix/all/0026--CVE-2009-0029-System-call-wrappers-part-16.patch
++ bugfix/all/0027--CVE-2009-0029-System-call-wrappers-part-17.patch
++ bugfix/all/0028--CVE-2009-0029-System-call-wrappers-part-18.patch
++ bugfix/all/0029--CVE-2009-0029-System-call-wrappers-part-19.patch
++ bugfix/all/0030--CVE-2009-0029-System-call-wrappers-part-20.patch
++ bugfix/all/0031--CVE-2009-0029-System-call-wrappers-part-21.patch
++ bugfix/all/0032--CVE-2009-0029-System-call-wrappers-part-22.patch
++ bugfix/all/0033--CVE-2009-0029-System-call-wrappers-part-23.patch
++ bugfix/all/0034--CVE-2009-0029-System-call-wrappers-part-24.patch
++ bugfix/all/0035--CVE-2009-0029-System-call-wrappers-part-25.patch
++ bugfix/all/0036--CVE-2009-0029-System-call-wrappers-part-26.patch
++ bugfix/all/0037--CVE-2009-0029-System-call-wrappers-part-27.patch
++ bugfix/all/0038pre1-missing-include.patch
++ bugfix/all/0038--CVE-2009-0029-System-call-wrappers-part-28.patch
++ bugfix/all/0039--CVE-2009-0029-System-call-wrappers-part-29.patch
++ bugfix/all/0040--CVE-2009-0029-System-call-wrappers-part-30.patch
++ bugfix/all/0041--CVE-2009-0029-System-call-wrappers-part-31.patch
++ bugfix/all/0042--CVE-2009-0029-System-call-wrappers-part-32.patch
++ bugfix/all/0043--CVE-2009-0029-System-call-wrappers-part-33.patch
++ bugfix/all/0044--CVE-2009-0029-s390-specific-system-call-wrappers.patch
More information about the Kernel-svn-changes
mailing list