[kernel] r12734 - in dists/etch-security/linux-2.6/debian/patches: bugfix/all/CVE-2009-0029 features/all/vserver series
Dann Frazier
dannf at alioth.debian.org
Mon Feb 9 15:47:56 UTC 2009
Author: dannf
Date: Mon Feb 9 15:47:53 2009
New Revision: 12734
Log:
Initial CVE-2009-0029 backport for 2.6.18
Added:
dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/
- copied from r12610, /dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/
dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0037pre1-missing-include.patch
dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0038pre2-missing-include.patch
dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0090-i386-remove-sys_pipe-proto.patch
dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0091-avoid-abi-change.patch
Removed:
dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0019pre1-missing-include.patch
dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0041pre1-missing-include.patch
dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0042pre1-missing-include.patch
Modified:
dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0001-Move-compat-system-call-declarations.patch
dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0002-Convert-all-system-calls-to-return-a.patch
dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0003-Rename-old_readdir-to-sys_old_readdi.patch
dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0004-Remove-__attribute__-weak-from-sy.patch
dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0004pre1-ia64-kill-sys32_pipe.patch
dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0004pre2-unify-sys_pipe.patch
dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0005-Make-sys_pselect7-static.patch
dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0006-Make-sys_syslog-a-conditional-system.patch
dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0007-System-call-wrapper-infrastructure.patch
dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0008-powerpc-Enable-syscall-wrappers-for.patch
dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0009-s390-enable-system-call-wrappers.patch
dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0010-System-call-wrapper-special-cases.patch
dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0011-System-call-wrappers-part-01.patch
dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0012-System-call-wrappers-part-02.patch
dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0013-System-call-wrappers-part-03.patch
dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0014-System-call-wrappers-part-04.patch
dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0015-System-call-wrappers-part-05.patch
dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0016-System-call-wrappers-part-06.patch
dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0017-System-call-wrappers-part-07.patch
dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0018-System-call-wrappers-part-08.patch
dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0019-System-call-wrappers-part-09.patch
dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0020-System-call-wrappers-part-10.patch
dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0021-System-call-wrappers-part-11.patch
dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0022-System-call-wrappers-part-12.patch
dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0023-System-call-wrappers-part-13.patch
dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0024-System-call-wrappers-part-14.patch
dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0025-System-call-wrappers-part-15.patch
dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0026-System-call-wrappers-part-16.patch
dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0027-System-call-wrappers-part-17.patch
dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0028-System-call-wrappers-part-18.patch
dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0029-System-call-wrappers-part-19.patch
dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0030-System-call-wrappers-part-20.patch
dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0031-System-call-wrappers-part-21.patch
dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0032-System-call-wrappers-part-22.patch
dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0033-System-call-wrappers-part-23.patch
dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0034-System-call-wrappers-part-24.patch
dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0035-System-call-wrappers-part-25.patch
dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0036-System-call-wrappers-part-26.patch
dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0037-System-call-wrappers-part-27.patch
dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0038-System-call-wrappers-part-28.patch
dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0039-System-call-wrappers-part-29.patch
dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0040-System-call-wrappers-part-30.patch
dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0041-System-call-wrappers-part-31.patch
dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0042-System-call-wrappers-part-32.patch
dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0043-System-call-wrappers-part-33.patch
dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0043pre1-missing-include.patch
dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0044-s390-specific-system-call-wrappers.patch
dists/etch-security/linux-2.6/debian/patches/features/all/vserver/vs2.0.2.2-rc9.patch
dists/etch-security/linux-2.6/debian/patches/series/23etch2
Modified: dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0001-Move-compat-system-call-declarations.patch
==============================================================================
--- /dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/0001-Move-compat-system-call-declarations.patch (original)
+++ dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0001-Move-compat-system-call-declarations.patch Mon Feb 9 15:47:53 2009
@@ -11,19 +11,15 @@
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.24 by dann frazier <dannf at debian.org>
+Adjusted to apply to Debian's 2.6.18 by dann frazier <dannf at debian.org>
-diff -urpN linux-source-2.6.24.orig/include/linux/compat.h linux-source-2.6.24/include/linux/compat.h
---- linux-source-2.6.24.orig/include/linux/compat.h 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/include/linux/compat.h 2009-01-21 00:03:52.000000000 -0700
-@@ -267,5 +267,18 @@ asmlinkage long compat_sys_signalfd(int
- asmlinkage long compat_sys_timerfd(int ufd, int clockid, int flags,
- const struct compat_itimerspec __user *utmr);
+diff -urpN linux-source-2.6.18.orig/include/linux/compat.h linux-source-2.6.18/include/linux/compat.h
+--- linux-source-2.6.18.orig/include/linux/compat.h 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/include/linux/compat.h 2009-01-25 19:30:22.000000000 -0700
+@@ -228,5 +228,18 @@ asmlinkage long compat_sys_adjtimex(stru
+
+ extern int compat_printk(const char *fmt, ...);
+asmlinkage long compat_sys_move_pages(pid_t pid, unsigned long nr_page,
+ __u32 __user *pages,
@@ -40,10 +36,10 @@
+
#endif /* CONFIG_COMPAT */
#endif /* _LINUX_COMPAT_H */
-diff -urpN linux-source-2.6.24.orig/include/linux/syscalls.h linux-source-2.6.24/include/linux/syscalls.h
---- linux-source-2.6.24.orig/include/linux/syscalls.h 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/include/linux/syscalls.h 2009-01-21 00:03:52.000000000 -0700
-@@ -526,11 +526,6 @@ asmlinkage long sys_move_pages(pid_t pid
+diff -urpN linux-source-2.6.18.orig/include/linux/syscalls.h linux-source-2.6.18/include/linux/syscalls.h
+--- linux-source-2.6.18.orig/include/linux/syscalls.h 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/include/linux/syscalls.h 2009-01-25 19:37:08.000000000 -0700
+@@ -521,11 +521,6 @@ asmlinkage long sys_move_pages(pid_t pid
const int __user *nodes,
int __user *status,
int flags);
@@ -55,10 +51,10 @@
asmlinkage long sys_mbind(unsigned long start, unsigned long len,
unsigned long mode,
unsigned long __user *nmask,
-@@ -578,13 +573,6 @@ asmlinkage long sys_readlinkat(int dfd,
+@@ -571,13 +566,6 @@ asmlinkage long sys_fstatat64(int dfd, c
+ struct stat64 __user *statbuf, int flag);
+ asmlinkage long sys_readlinkat(int dfd, const char __user *path, char __user *buf,
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,
Modified: dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0002-Convert-all-system-calls-to-return-a.patch
==============================================================================
--- /dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/0002-Convert-all-system-calls-to-return-a.patch (original)
+++ dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0002-Convert-all-system-calls-to-return-a.patch Mon Feb 9 15:47:53 2009
@@ -15,12 +15,12 @@
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.24 by dann frazier <dannf at debian.org)
+Backported to Debian's 2.6.18 by dann frazier <dannf at debian.org)
-diff -urpN linux-source-2.6.24.orig/fs/read_write.c linux-source-2.6.24/fs/read_write.c
---- linux-source-2.6.24.orig/fs/read_write.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/fs/read_write.c 2009-01-21 00:05:39.000000000 -0700
-@@ -128,7 +128,7 @@ loff_t vfs_llseek(struct file *file, lof
+diff -urpN linux-source-2.6.18.orig/fs/read_write.c linux-source-2.6.18/fs/read_write.c
+--- linux-source-2.6.18.orig/fs/read_write.c 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/fs/read_write.c 2009-01-25 19:39:05.000000000 -0700
+@@ -125,7 +125,7 @@ loff_t vfs_llseek(struct file *file, lof
}
EXPORT_SYMBOL(vfs_llseek);
@@ -29,7 +29,7 @@
{
off_t retval;
struct file * file;
-@@ -354,7 +354,7 @@ static inline void file_pos_write(struct
+@@ -339,7 +339,7 @@ static inline void file_pos_write(struct
file->f_pos = pos;
}
@@ -38,16 +38,16 @@
{
struct file *file;
ssize_t ret = -EBADF;
-@@ -372,7 +372,7 @@ asmlinkage ssize_t sys_read(unsigned int
+@@ -357,7 +357,7 @@ asmlinkage ssize_t sys_read(unsigned int
}
- EXPORT_UNUSED_SYMBOL_GPL(sys_read); /* to be deleted for 2.6.25 */
+ EXPORT_SYMBOL_GPL(sys_read);
-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;
-@@ -389,7 +389,7 @@ asmlinkage ssize_t sys_write(unsigned in
+@@ -374,7 +374,7 @@ asmlinkage ssize_t sys_write(unsigned in
return ret;
}
@@ -56,7 +56,7 @@
size_t count, loff_t pos)
{
struct file *file;
-@@ -410,7 +410,7 @@ asmlinkage ssize_t sys_pread64(unsigned
+@@ -395,7 +395,7 @@ asmlinkage ssize_t sys_pread64(unsigned
return ret;
}
@@ -65,7 +65,7 @@
size_t count, loff_t pos)
{
struct file *file;
-@@ -660,7 +660,7 @@ ssize_t vfs_writev(struct file *file, co
+@@ -594,7 +594,7 @@ ssize_t vfs_writev(struct file *file, co
EXPORT_SYMBOL(vfs_writev);
@@ -74,7 +74,7 @@
sys_readv(unsigned long fd, const struct iovec __user *vec, unsigned long vlen)
{
struct file *file;
-@@ -681,7 +681,7 @@ sys_readv(unsigned long fd, const struct
+@@ -615,7 +615,7 @@ sys_readv(unsigned long fd, const struct
return ret;
}
@@ -83,7 +83,7 @@
sys_writev(unsigned long fd, const struct iovec __user *vec, unsigned long vlen)
{
struct file *file;
-@@ -808,7 +808,7 @@ out:
+@@ -731,7 +731,7 @@ out:
return retval;
}
@@ -92,7 +92,7 @@
{
loff_t pos;
off_t off;
-@@ -827,7 +827,7 @@ asmlinkage ssize_t sys_sendfile(int out_
+@@ -750,7 +750,7 @@ asmlinkage ssize_t sys_sendfile(int out_
return do_sendfile(out_fd, in_fd, NULL, count, 0);
}
@@ -101,10 +101,10 @@
{
loff_t pos;
ssize_t ret;
-diff -urpN linux-source-2.6.24.orig/fs/xattr.c linux-source-2.6.24/fs/xattr.c
---- linux-source-2.6.24.orig/fs/xattr.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/fs/xattr.c 2009-01-21 00:11:43.000000000 -0700
-@@ -310,7 +310,7 @@ getxattr(struct dentry *d, char __user *
+diff -urpN linux-source-2.6.18.orig/fs/xattr.c linux-source-2.6.18/fs/xattr.c
+--- linux-source-2.6.18.orig/fs/xattr.c 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/fs/xattr.c 2009-01-25 19:39:05.000000000 -0700
+@@ -285,7 +285,7 @@ getxattr(struct dentry *d, char __user *
return error;
}
@@ -113,7 +113,7 @@
sys_getxattr(char __user *path, char __user *name, void __user *value,
size_t size)
{
-@@ -325,7 +325,7 @@ sys_getxattr(char __user *path, char __u
+@@ -300,7 +300,7 @@ sys_getxattr(char __user *path, char __u
return error;
}
@@ -122,7 +122,7 @@
sys_lgetxattr(char __user *path, char __user *name, void __user *value,
size_t size)
{
-@@ -340,7 +340,7 @@ sys_lgetxattr(char __user *path, char __
+@@ -315,7 +315,7 @@ sys_lgetxattr(char __user *path, char __
return error;
}
@@ -131,7 +131,7 @@
sys_fgetxattr(int fd, char __user *name, void __user *value, size_t size)
{
struct file *f;
-@@ -385,7 +385,7 @@ listxattr(struct dentry *d, char __user
+@@ -370,7 +370,7 @@ out:
return error;
}
@@ -140,7 +140,7 @@
sys_listxattr(char __user *path, char __user *list, size_t size)
{
struct nameidata nd;
-@@ -399,7 +399,7 @@ sys_listxattr(char __user *path, char __
+@@ -384,7 +384,7 @@ sys_listxattr(char __user *path, char __
return error;
}
@@ -149,7 +149,7 @@
sys_llistxattr(char __user *path, char __user *list, size_t size)
{
struct nameidata nd;
-@@ -413,7 +413,7 @@ sys_llistxattr(char __user *path, char _
+@@ -398,7 +398,7 @@ sys_llistxattr(char __user *path, char _
return error;
}
@@ -158,10 +158,10 @@
sys_flistxattr(int fd, char __user *list, size_t size)
{
struct file *f;
-diff -urpN linux-source-2.6.24.orig/include/linux/syscalls.h linux-source-2.6.24/include/linux/syscalls.h
---- linux-source-2.6.24.orig/include/linux/syscalls.h 2009-01-21 00:03:52.000000000 -0700
-+++ linux-source-2.6.24/include/linux/syscalls.h 2009-01-21 00:10:17.000000000 -0700
-@@ -78,7 +78,7 @@ asmlinkage long sys_times(struct tms __u
+diff -urpN linux-source-2.6.18.orig/include/linux/syscalls.h linux-source-2.6.18/include/linux/syscalls.h
+--- linux-source-2.6.18.orig/include/linux/syscalls.h 2009-01-25 19:37:08.000000000 -0700
++++ linux-source-2.6.18/include/linux/syscalls.h 2009-01-25 19:39:05.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);
@@ -170,7 +170,7 @@
asmlinkage long sys_getpid(void);
asmlinkage long sys_getppid(void);
asmlinkage long sys_getuid(void);
-@@ -167,7 +167,7 @@ asmlinkage long sys_kexec_load(unsigned
+@@ -166,7 +166,7 @@ asmlinkage long sys_kexec_load(unsigned
unsigned long flags);
asmlinkage long sys_exit(int error_code);
@@ -179,7 +179,7 @@
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,
-@@ -197,7 +197,7 @@ asmlinkage long sys_tkill(int pid, int s
+@@ -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);
@@ -188,7 +188,7 @@
asmlinkage long sys_pause(void);
asmlinkage long sys_sync(void);
-@@ -247,27 +247,27 @@ asmlinkage long sys_lsetxattr(char __use
+@@ -246,27 +246,27 @@ asmlinkage long sys_lsetxattr(char __use
void __user *value, size_t size, int flags);
asmlinkage long sys_fsetxattr(int fd, char __user *name, void __user *value,
size_t size, int flags);
@@ -231,7 +231,7 @@
asmlinkage long sys_remap_file_pages(unsigned long start, unsigned long size,
unsigned long prot, unsigned long pgoff,
unsigned long flags);
-@@ -319,10 +319,10 @@ asmlinkage long sys_io_submit(aio_contex
+@@ -318,10 +318,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);
@@ -246,7 +246,7 @@
asmlinkage long sys_readlink(const char __user *path,
char __user *buf, int bufsiz);
asmlinkage long sys_creat(const char __user *pathname, int mode);
-@@ -366,26 +366,25 @@ asmlinkage long sys_utime(char __user *f
+@@ -365,26 +365,25 @@ asmlinkage long sys_utime(char __user *f
struct utimbuf __user *times);
asmlinkage long sys_utimes(char __user *filename,
struct timeval __user *utimes);
@@ -289,7 +289,7 @@
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);
-@@ -472,7 +471,7 @@ asmlinkage long sys_shmctl(int shmid, in
+@@ -467,7 +466,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);
@@ -298,10 +298,10 @@
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.24.orig/ipc/mqueue.c linux-source-2.6.24/ipc/mqueue.c
---- linux-source-2.6.24.orig/ipc/mqueue.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/ipc/mqueue.c 2009-01-21 00:05:39.000000000 -0700
-@@ -894,7 +894,7 @@ out:
+diff -urpN linux-source-2.6.18.orig/ipc/mqueue.c linux-source-2.6.18/ipc/mqueue.c
+--- linux-source-2.6.18.orig/ipc/mqueue.c 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/ipc/mqueue.c 2009-01-25 19:39:05.000000000 -0700
+@@ -895,7 +895,7 @@ out:
return ret;
}
@@ -310,10 +310,10 @@
size_t msg_len, unsigned int __user *u_msg_prio,
const struct timespec __user *u_abs_timeout)
{
-diff -urpN linux-source-2.6.24.orig/kernel/exit.c linux-source-2.6.24/kernel/exit.c
---- linux-source-2.6.24.orig/kernel/exit.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/kernel/exit.c 2009-01-21 00:05:39.000000000 -0700
-@@ -1104,9 +1104,11 @@ do_group_exit(int exit_code)
+diff -urpN linux-source-2.6.18.orig/kernel/exit.c linux-source-2.6.18/kernel/exit.c
+--- linux-source-2.6.18.orig/kernel/exit.c 2008-12-25 14:04:13.000000000 -0700
++++ linux-source-2.6.18/kernel/exit.c 2009-01-25 19:39:05.000000000 -0700
+@@ -1016,9 +1016,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.
*/
@@ -326,10 +326,10 @@
}
static int eligible_child(pid_t pid, int options, struct task_struct *p)
-diff -urpN linux-source-2.6.24.orig/kernel/signal.c linux-source-2.6.24/kernel/signal.c
---- linux-source-2.6.24.orig/kernel/signal.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/kernel/signal.c 2009-01-21 00:05:39.000000000 -0700
-@@ -2543,7 +2543,7 @@ sys_ssetmask(int newmask)
+diff -urpN linux-source-2.6.18.orig/kernel/signal.c linux-source-2.6.18/kernel/signal.c
+--- linux-source-2.6.18.orig/kernel/signal.c 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/kernel/signal.c 2009-01-25 19:39:05.000000000 -0700
+@@ -2523,7 +2523,7 @@ sys_ssetmask(int newmask)
/*
* For backwards compatibility. Functionality superseded by sigaction.
*/
@@ -338,10 +338,10 @@
sys_signal(int sig, __sighandler_t handler)
{
struct k_sigaction new_sa, old_sa;
-diff -urpN linux-source-2.6.24.orig/kernel/timer.c linux-source-2.6.24/kernel/timer.c
---- linux-source-2.6.24.orig/kernel/timer.c 2008-10-10 00:11:28.000000000 -0600
-+++ linux-source-2.6.24/kernel/timer.c 2009-01-21 00:05:39.000000000 -0700
-@@ -947,7 +947,7 @@ void do_timer(unsigned long ticks)
+diff -urpN linux-source-2.6.18.orig/kernel/timer.c linux-source-2.6.18/kernel/timer.c
+--- linux-source-2.6.18.orig/kernel/timer.c 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/kernel/timer.c 2009-01-25 19:39:05.000000000 -0700
+@@ -1295,7 +1295,7 @@ void do_timer(struct pt_regs *regs)
* For backwards compatibility? This can be done in libc so Alpha
* and all newer ports shouldn't need it.
*/
@@ -350,10 +350,10 @@
{
return alarm_setitimer(seconds);
}
-diff -urpN linux-source-2.6.24.orig/mm/filemap.c linux-source-2.6.24/mm/filemap.c
---- linux-source-2.6.24.orig/mm/filemap.c 2008-10-10 00:11:30.000000000 -0600
-+++ linux-source-2.6.24/mm/filemap.c 2009-01-21 00:05:39.000000000 -0700
-@@ -1231,7 +1231,7 @@ do_readahead(struct address_space *mappi
+diff -urpN linux-source-2.6.18.orig/mm/filemap.c linux-source-2.6.18/mm/filemap.c
+--- linux-source-2.6.18.orig/mm/filemap.c 2008-12-25 14:04:14.000000000 -0700
++++ linux-source-2.6.18/mm/filemap.c 2009-01-25 19:39:05.000000000 -0700
+@@ -1285,7 +1285,7 @@ do_readahead(struct address_space *mappi
return 0;
}
@@ -362,10 +362,10 @@
{
ssize_t ret;
struct file *file;
-diff -urpN linux-source-2.6.24.orig/mm/mmap.c linux-source-2.6.24/mm/mmap.c
---- linux-source-2.6.24.orig/mm/mmap.c 2008-10-10 00:11:27.000000000 -0600
-+++ linux-source-2.6.24/mm/mmap.c 2009-01-21 00:05:39.000000000 -0700
-@@ -233,7 +233,7 @@ static struct vm_area_struct *remove_vma
+diff -urpN linux-source-2.6.18.orig/mm/mmap.c linux-source-2.6.18/mm/mmap.c
+--- linux-source-2.6.18.orig/mm/mmap.c 2008-12-25 14:04:14.000000000 -0700
++++ linux-source-2.6.18/mm/mmap.c 2009-01-25 19:39:05.000000000 -0700
+@@ -226,7 +226,7 @@ static struct vm_area_struct *remove_vma
return next;
}
@@ -374,10 +374,10 @@
{
unsigned long rlim, retval;
unsigned long newbrk, oldbrk;
-diff -urpN linux-source-2.6.24.orig/mm/mremap.c linux-source-2.6.24/mm/mremap.c
---- linux-source-2.6.24.orig/mm/mremap.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/mm/mremap.c 2009-01-21 00:05:39.000000000 -0700
-@@ -412,7 +412,7 @@ out_nc:
+diff -urpN linux-source-2.6.18.orig/mm/mremap.c linux-source-2.6.18/mm/mremap.c
+--- linux-source-2.6.18.orig/mm/mremap.c 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/mm/mremap.c 2009-01-25 19:39:05.000000000 -0700
+@@ -402,7 +402,7 @@ out_nc:
return ret;
}
@@ -386,10 +386,10 @@
unsigned long old_len, unsigned long new_len,
unsigned long flags, unsigned long new_addr)
{
-diff -urpN linux-source-2.6.24.orig/mm/nommu.c linux-source-2.6.24/mm/nommu.c
---- linux-source-2.6.24.orig/mm/nommu.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/mm/nommu.c 2009-01-21 00:05:39.000000000 -0700
-@@ -295,7 +295,7 @@ EXPORT_SYMBOL(vm_insert_page);
+diff -urpN linux-source-2.6.18.orig/mm/nommu.c linux-source-2.6.18/mm/nommu.c
+--- linux-source-2.6.18.orig/mm/nommu.c 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/mm/nommu.c 2009-01-25 19:39:05.000000000 -0700
+@@ -243,7 +243,7 @@ void vunmap(void *addr)
* to a regular file. in this case, the unmapping will need
* to invoke file system routines that need the global lock.
*/
Modified: dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0003-Rename-old_readdir-to-sys_old_readdi.patch
==============================================================================
--- /dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/0003-Rename-old_readdir-to-sys_old_readdi.patch (original)
+++ dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0003-Rename-old_readdir-to-sys_old_readdi.patch Mon Feb 9 15:47:53 2009
@@ -12,12 +12,12 @@
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.24 by dann frazier <dannf at debian.org>
+Backported to Debian's 2.6.18 by dann frazier <dannf at debian.org>
(mn10300 and sh arch-specific changes ignored)
-diff -urpN linux-source-2.6.24.orig/arch/arm/kernel/calls.S linux-source-2.6.24/arch/arm/kernel/calls.S
---- linux-source-2.6.24.orig/arch/arm/kernel/calls.S 2008-10-10 00:11:28.000000000 -0600
-+++ linux-source-2.6.24/arch/arm/kernel/calls.S 2009-01-21 00:12:49.000000000 -0700
+diff -urpN linux-source-2.6.18.orig/arch/arm/kernel/calls.S linux-source-2.6.18/arch/arm/kernel/calls.S
+--- linux-source-2.6.18.orig/arch/arm/kernel/calls.S 2008-12-25 14:04:13.000000000 -0700
++++ linux-source-2.6.18/arch/arm/kernel/calls.S 2009-01-25 19:51:53.000000000 -0700
@@ -98,7 +98,7 @@
CALL(sys_uselib)
CALL(sys_swapon)
@@ -27,10 +27,10 @@
/* 90 */ CALL(OBSOLETE(old_mmap)) /* used by libc4 */
CALL(sys_munmap)
CALL(sys_truncate)
-diff -urpN linux-source-2.6.24.orig/arch/cris/arch-v10/kernel/entry.S linux-source-2.6.24/arch/cris/arch-v10/kernel/entry.S
---- linux-source-2.6.24.orig/arch/cris/arch-v10/kernel/entry.S 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/arch/cris/arch-v10/kernel/entry.S 2009-01-21 00:12:49.000000000 -0700
-@@ -934,7 +934,7 @@ sys_call_table:
+diff -urpN linux-source-2.6.18.orig/arch/cris/arch-v10/kernel/entry.S linux-source-2.6.18/arch/cris/arch-v10/kernel/entry.S
+--- linux-source-2.6.18.orig/arch/cris/arch-v10/kernel/entry.S 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/arch/cris/arch-v10/kernel/entry.S 2009-01-25 19:51:53.000000000 -0700
+@@ -935,7 +935,7 @@ sys_call_table:
.long sys_uselib
.long sys_swapon
.long sys_reboot
@@ -39,9 +39,9 @@
.long old_mmap /* 90 */
.long sys_munmap
.long sys_truncate
-diff -urpN linux-source-2.6.24.orig/arch/cris/arch-v32/kernel/entry.S linux-source-2.6.24/arch/cris/arch-v32/kernel/entry.S
---- linux-source-2.6.24.orig/arch/cris/arch-v32/kernel/entry.S 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/arch/cris/arch-v32/kernel/entry.S 2009-01-21 00:12:49.000000000 -0700
+diff -urpN linux-source-2.6.18.orig/arch/cris/arch-v32/kernel/entry.S linux-source-2.6.18/arch/cris/arch-v32/kernel/entry.S
+--- linux-source-2.6.18.orig/arch/cris/arch-v32/kernel/entry.S 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/arch/cris/arch-v32/kernel/entry.S 2009-01-25 19:51:53.000000000 -0700
@@ -609,7 +609,7 @@ sys_call_table:
.long sys_uselib
.long sys_swapon
@@ -51,9 +51,9 @@
.long old_mmap /* 90 */
.long sys_munmap
.long sys_truncate
-diff -urpN linux-source-2.6.24.orig/arch/h8300/kernel/syscalls.S linux-source-2.6.24/arch/h8300/kernel/syscalls.S
---- linux-source-2.6.24.orig/arch/h8300/kernel/syscalls.S 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/arch/h8300/kernel/syscalls.S 2009-01-21 00:12:49.000000000 -0700
+diff -urpN linux-source-2.6.18.orig/arch/h8300/kernel/syscalls.S linux-source-2.6.18/arch/h8300/kernel/syscalls.S
+--- linux-source-2.6.18.orig/arch/h8300/kernel/syscalls.S 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/arch/h8300/kernel/syscalls.S 2009-01-25 19:51:53.000000000 -0700
@@ -103,7 +103,7 @@ SYMBOL_NAME_LABEL(sys_call_table)
.long SYMBOL_NAME(sys_uselib)
.long SYMBOL_NAME(sys_swapon)
@@ -63,9 +63,9 @@
.long SYMBOL_NAME(old_mmap) /* 90 */
.long SYMBOL_NAME(sys_munmap)
.long SYMBOL_NAME(sys_truncate)
-diff -urpN linux-source-2.6.24.orig/arch/m68k/kernel/entry.S linux-source-2.6.24/arch/m68k/kernel/entry.S
---- linux-source-2.6.24.orig/arch/m68k/kernel/entry.S 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/arch/m68k/kernel/entry.S 2009-01-21 00:12:49.000000000 -0700
+diff -urpN linux-source-2.6.18.orig/arch/m68k/kernel/entry.S linux-source-2.6.18/arch/m68k/kernel/entry.S
+--- linux-source-2.6.18.orig/arch/m68k/kernel/entry.S 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/arch/m68k/kernel/entry.S 2009-01-25 19:51:53.000000000 -0700
@@ -513,7 +513,7 @@ sys_call_table:
.long sys_uselib
.long sys_swapon
@@ -75,9 +75,9 @@
.long old_mmap /* 90 */
.long sys_munmap
.long sys_truncate
-diff -urpN linux-source-2.6.24.orig/arch/m68knommu/kernel/syscalltable.S linux-source-2.6.24/arch/m68knommu/kernel/syscalltable.S
---- linux-source-2.6.24.orig/arch/m68knommu/kernel/syscalltable.S 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/arch/m68knommu/kernel/syscalltable.S 2009-01-21 00:12:49.000000000 -0700
+diff -urpN linux-source-2.6.18.orig/arch/m68knommu/kernel/syscalltable.S linux-source-2.6.18/arch/m68knommu/kernel/syscalltable.S
+--- linux-source-2.6.18.orig/arch/m68knommu/kernel/syscalltable.S 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/arch/m68knommu/kernel/syscalltable.S 2009-01-25 19:51:53.000000000 -0700
@@ -107,7 +107,7 @@ ENTRY(sys_call_table)
.long sys_uselib
.long sys_ni_syscall /* sys_swapon */
@@ -87,10 +87,10 @@
.long old_mmap /* 90 */
.long sys_munmap
.long sys_truncate
-diff -urpN linux-source-2.6.24.orig/arch/mips/kernel/scall32-o32.S linux-source-2.6.24/arch/mips/kernel/scall32-o32.S
---- linux-source-2.6.24.orig/arch/mips/kernel/scall32-o32.S 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/arch/mips/kernel/scall32-o32.S 2009-01-21 00:12:49.000000000 -0700
-@@ -420,7 +420,7 @@ einval: li v0, -EINVAL
+diff -urpN linux-source-2.6.18.orig/arch/mips/kernel/scall32-o32.S linux-source-2.6.18/arch/mips/kernel/scall32-o32.S
+--- linux-source-2.6.18.orig/arch/mips/kernel/scall32-o32.S 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/arch/mips/kernel/scall32-o32.S 2009-01-25 19:51:53.000000000 -0700
+@@ -431,7 +431,7 @@ einval: li v0, -EINVAL
sys sys_uselib 1
sys sys_swapon 2
sys sys_reboot 3
@@ -99,10 +99,10 @@
sys old_mmap 6 /* 4090 */
sys sys_munmap 2
sys sys_truncate 2
-diff -urpN linux-source-2.6.24.orig/arch/sparc/kernel/systbls.S linux-source-2.6.24/arch/sparc/kernel/systbls.S
---- linux-source-2.6.24.orig/arch/sparc/kernel/systbls.S 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/arch/sparc/kernel/systbls.S 2009-01-21 00:13:05.000000000 -0700
-@@ -56,7 +56,7 @@ sys_call_table:
+diff -urpN linux-source-2.6.18.orig/arch/sparc/kernel/systbls.S linux-source-2.6.18/arch/sparc/kernel/systbls.S
+--- linux-source-2.6.18.orig/arch/sparc/kernel/systbls.S 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/arch/sparc/kernel/systbls.S 2009-01-25 19:51:53.000000000 -0700
+@@ -57,7 +57,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
@@ -111,22 +111,10 @@
/*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.24.orig/arch/x86/kernel/syscall_table_32.S linux-source-2.6.24/arch/x86/kernel/syscall_table_32.S
---- linux-source-2.6.24.orig/arch/x86/kernel/syscall_table_32.S 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/arch/x86/kernel/syscall_table_32.S 2009-01-21 00:13:05.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.24.orig/fs/readdir.c linux-source-2.6.24/fs/readdir.c
---- linux-source-2.6.24.orig/fs/readdir.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/fs/readdir.c 2009-01-21 00:13:05.000000000 -0700
-@@ -97,7 +97,7 @@ efault:
+diff -urpN linux-source-2.6.18.orig/fs/readdir.c linux-source-2.6.18/fs/readdir.c
+--- linux-source-2.6.18.orig/fs/readdir.c 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/fs/readdir.c 2009-01-25 19:54:02.000000000 -0700
+@@ -94,7 +94,7 @@ efault:
return -EFAULT;
}
@@ -135,9 +123,9 @@
{
int error;
struct file * file;
-diff -urpN linux-source-2.6.24.orig/include/asm-powerpc/systbl.h linux-source-2.6.24/include/asm-powerpc/systbl.h
---- linux-source-2.6.24.orig/include/asm-powerpc/systbl.h 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/include/asm-powerpc/systbl.h 2009-01-21 00:13:05.000000000 -0700
+diff -urpN linux-source-2.6.18.orig/include/asm-powerpc/systbl.h linux-source-2.6.18/include/asm-powerpc/systbl.h
+--- linux-source-2.6.18.orig/include/asm-powerpc/systbl.h 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/include/asm-powerpc/systbl.h 2009-01-25 19:54:02.000000000 -0700
@@ -92,7 +92,7 @@ COMPAT_SYS_SPU(readlink)
SYSCALL(uselib)
SYSCALL(swapon)
@@ -147,22 +135,33 @@
SYSCALL_SPU(mmap)
SYSCALL_SPU(munmap)
SYSCALL_SPU(truncate)
-diff -urpN linux-source-2.6.24.orig/include/linux/syscalls.h linux-source-2.6.24/include/linux/syscalls.h
---- linux-source-2.6.24.orig/include/linux/syscalls.h 2009-01-21 00:10:17.000000000 -0700
-+++ linux-source-2.6.24/include/linux/syscalls.h 2009-01-21 00:13:05.000000000 -0700
-@@ -54,6 +54,7 @@ struct compat_stat;
+diff -urpN linux-source-2.6.18.orig/include/linux/syscalls.h linux-source-2.6.18/include/linux/syscalls.h
+--- linux-source-2.6.18.orig/include/linux/syscalls.h 2009-01-25 19:39:05.000000000 -0700
++++ linux-source-2.6.18/include/linux/syscalls.h 2009-01-25 19:59:00.000000000 -0700
+@@ -53,6 +53,7 @@ struct mq_attr;
+ 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>
-@@ -598,6 +599,7 @@ asmlinkage long sys_timerfd(int ufd, int
- const struct itimerspec __user *utmr);
- asmlinkage long sys_eventfd(unsigned int count);
- asmlinkage long sys_fallocate(int fd, int mode, loff_t offset, loff_t len);
+@@ -583,5 +584,6 @@ asmlinkage long sys_get_robust_list(int
+ size_t __user *len_ptr);
+ asmlinkage long sys_set_robust_list(struct robust_list_head __user *head,
+ size_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[]);
-
+ #endif
+diff -urpN a/arch/i386/kernel/syscall_table.S b/arch/i386/kernel/syscall_table.S
+--- a/arch/i386/kernel/syscall_table.S 2009-01-29 00:16:31.000000000 -0700
++++ b/arch/i386/kernel/syscall_table.S 2009-01-29 00:17:29.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
Modified: dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0004-Remove-__attribute__-weak-from-sy.patch
==============================================================================
--- /dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/0004-Remove-__attribute__-weak-from-sy.patch (original)
+++ dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0004-Remove-__attribute__-weak-from-sy.patch Mon Feb 9 15:47:53 2009
@@ -19,12 +19,12 @@
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.24 by dann frazier <dannf at debian.org>
+Backported to Debian's 2.6.18 by dann frazier <dannf at debian.org>
-diff -urpN linux-source-2.6.24.orig/arch/alpha/kernel/entry.S linux-source-2.6.24/arch/alpha/kernel/entry.S
---- linux-source-2.6.24.orig/arch/alpha/kernel/entry.S 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/arch/alpha/kernel/entry.S 2009-01-21 00:29:42.000000000 -0700
-@@ -894,9 +894,9 @@ sys_getxpid:
+diff -urpN linux-source-2.6.18.orig/arch/alpha/kernel/entry.S linux-source-2.6.18/arch/alpha/kernel/entry.S
+--- linux-source-2.6.18.orig/arch/alpha/kernel/entry.S 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/arch/alpha/kernel/entry.S 2009-01-25 20:10:02.000000000 -0700
+@@ -895,9 +895,9 @@ sys_getxpid:
.end sys_getxpid
.align 4
@@ -37,7 +37,7 @@
lda $sp, -16($sp)
stq $26, 0($sp)
.prologue 0
-@@ -914,7 +914,7 @@ sys_pipe:
+@@ -915,7 +915,7 @@ sys_pipe:
stq $1, 80+16($sp)
1: lda $sp, 16($sp)
ret
@@ -45,11 +45,11 @@
+.end sys_alpha_pipe
.align 4
- .globl sys_execve
-diff -urpN linux-source-2.6.24.orig/arch/alpha/kernel/systbls.S linux-source-2.6.24/arch/alpha/kernel/systbls.S
---- linux-source-2.6.24.orig/arch/alpha/kernel/systbls.S 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/arch/alpha/kernel/systbls.S 2009-01-21 00:29:42.000000000 -0700
-@@ -52,7 +52,7 @@ sys_call_table:
+ .globl sys_ptrace
+diff -urpN linux-source-2.6.18.orig/arch/alpha/kernel/systbls.S linux-source-2.6.18/arch/alpha/kernel/systbls.S
+--- linux-source-2.6.18.orig/arch/alpha/kernel/systbls.S 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/arch/alpha/kernel/systbls.S 2009-01-25 20:10:02.000000000 -0700
+@@ -53,7 +53,7 @@ sys_call_table:
.quad sys_setpgid
.quad alpha_ni_syscall /* 40 */
.quad sys_dup
@@ -58,10 +58,10 @@
.quad osf_set_program_attributes
.quad alpha_ni_syscall
.quad sys_open /* 45 */
-diff -urpN linux-source-2.6.24.orig/arch/ia64/ia32/ia32_entry.S linux-source-2.6.24/arch/ia64/ia32/ia32_entry.S
---- linux-source-2.6.24.orig/arch/ia64/ia32/ia32_entry.S 2009-01-21 00:15:40.000000000 -0700
-+++ linux-source-2.6.24/arch/ia64/ia32/ia32_entry.S 2009-01-21 00:29:42.000000000 -0700
-@@ -215,7 +215,7 @@ ia32_syscall_table:
+diff -urpN linux-source-2.6.18.orig/arch/ia64/ia32/ia32_entry.S linux-source-2.6.18/arch/ia64/ia32/ia32_entry.S
+--- linux-source-2.6.18.orig/arch/ia64/ia32/ia32_entry.S 2009-01-25 20:04:10.000000000 -0700
++++ linux-source-2.6.18/arch/ia64/ia32/ia32_entry.S 2009-01-25 20:10:02.000000000 -0700
+@@ -252,7 +252,7 @@ ia32_syscall_table:
data8 sys_mkdir
data8 sys_rmdir /* 40 */
data8 sys_dup
@@ -70,10 +70,10 @@
data8 compat_sys_times
data8 sys_ni_syscall /* old prof syscall holder */
data8 sys32_brk /* 45 */
-diff -urpN linux-source-2.6.24.orig/arch/ia64/kernel/entry.S linux-source-2.6.24/arch/ia64/kernel/entry.S
---- linux-source-2.6.24.orig/arch/ia64/kernel/entry.S 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/arch/ia64/kernel/entry.S 2009-01-21 00:29:42.000000000 -0700
-@@ -1336,7 +1336,7 @@ sys_call_table:
+diff -urpN linux-source-2.6.18.orig/arch/ia64/kernel/entry.S linux-source-2.6.18/arch/ia64/kernel/entry.S
+--- linux-source-2.6.18.orig/arch/ia64/kernel/entry.S 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/arch/ia64/kernel/entry.S 2009-01-25 20:10:02.000000000 -0700
+@@ -1365,7 +1365,7 @@ sys_call_table:
data8 sys_mkdir // 1055
data8 sys_rmdir
data8 sys_dup
@@ -82,10 +82,10 @@
data8 sys_times
data8 ia64_brk // 1060
data8 sys_setgid
-diff -urpN linux-source-2.6.24.orig/arch/ia64/kernel/sys_ia64.c linux-source-2.6.24/arch/ia64/kernel/sys_ia64.c
---- linux-source-2.6.24.orig/arch/ia64/kernel/sys_ia64.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/arch/ia64/kernel/sys_ia64.c 2009-01-21 00:29:42.000000000 -0700
-@@ -154,7 +154,7 @@ out:
+diff -urpN linux-source-2.6.18.orig/arch/ia64/kernel/sys_ia64.c linux-source-2.6.18/arch/ia64/kernel/sys_ia64.c
+--- linux-source-2.6.18.orig/arch/ia64/kernel/sys_ia64.c 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/arch/ia64/kernel/sys_ia64.c 2009-01-25 20:10:02.000000000 -0700
+@@ -148,7 +148,7 @@ out:
* and r9) as this is faster than doing a copy_to_user().
*/
asmlinkage long
@@ -94,10 +94,10 @@
{
struct pt_regs *regs = task_pt_regs(current);
int fd[2];
-diff -urpN linux-source-2.6.24.orig/arch/sparc/kernel/entry.S linux-source-2.6.24/arch/sparc/kernel/entry.S
---- linux-source-2.6.24.orig/arch/sparc/kernel/entry.S 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/arch/sparc/kernel/entry.S 2009-01-21 00:29:55.000000000 -0700
-@@ -1250,8 +1250,8 @@ sys_execve:
+diff -urpN linux-source-2.6.18.orig/arch/sparc/kernel/entry.S linux-source-2.6.18/arch/sparc/kernel/entry.S
+--- linux-source-2.6.18.orig/arch/sparc/kernel/entry.S 2008-12-25 14:04:13.000000000 -0700
++++ linux-source-2.6.18/arch/sparc/kernel/entry.S 2009-01-25 20:10:02.000000000 -0700
+@@ -1251,8 +1251,8 @@ sys_execve:
mov %l5, %o7
.align 4
@@ -108,10 +108,10 @@
mov %o7, %l5
add %sp, STACKFRAME_SZ, %o0 ! pt_regs *regs arg
call sparc_pipe
-diff -urpN linux-source-2.6.24.orig/arch/sparc/kernel/systbls.S linux-source-2.6.24/arch/sparc/kernel/systbls.S
---- linux-source-2.6.24.orig/arch/sparc/kernel/systbls.S 2009-01-21 00:13:05.000000000 -0700
-+++ linux-source-2.6.24/arch/sparc/kernel/systbls.S 2009-01-21 00:29:55.000000000 -0700
-@@ -24,7 +24,7 @@ sys_call_table:
+diff -urpN linux-source-2.6.18.orig/arch/sparc/kernel/systbls.S linux-source-2.6.18/arch/sparc/kernel/systbls.S
+--- linux-source-2.6.18.orig/arch/sparc/kernel/systbls.S 2009-01-25 19:51:53.000000000 -0700
++++ linux-source-2.6.18/arch/sparc/kernel/systbls.S 2009-01-25 20:10:02.000000000 -0700
+@@ -25,7 +25,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
@@ -120,10 +120,10 @@
/*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.24.orig/arch/sparc64/kernel/systbls.S linux-source-2.6.24/arch/sparc64/kernel/systbls.S
---- linux-source-2.6.24.orig/arch/sparc64/kernel/systbls.S 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/arch/sparc64/kernel/systbls.S 2009-01-21 00:29:57.000000000 -0700
-@@ -26,7 +26,7 @@ sys_call_table32:
+diff -urpN linux-source-2.6.18.orig/arch/sparc64/kernel/systbls.S linux-source-2.6.18/arch/sparc64/kernel/systbls.S
+--- linux-source-2.6.18.orig/arch/sparc64/kernel/systbls.S 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/arch/sparc64/kernel/systbls.S 2009-01-25 20:10:02.000000000 -0700
+@@ -27,7 +27,7 @@ sys_call_table32:
/*25*/ .word sys32_vmsplice, 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
@@ -132,7 +132,7 @@
.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
-@@ -98,7 +98,7 @@ sys_call_table:
+@@ -97,7 +97,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
@@ -141,10 +141,10 @@
.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.24.orig/fs/pipe.c linux-source-2.6.24/fs/pipe.c
---- linux-source-2.6.24.orig/fs/pipe.c 2009-01-21 00:27:52.000000000 -0700
-+++ linux-source-2.6.24/fs/pipe.c 2009-01-21 00:29:57.000000000 -0700
-@@ -1079,7 +1079,7 @@ int do_pipe(int *fd)
+diff -urpN linux-source-2.6.18.orig/fs/pipe.c linux-source-2.6.18/fs/pipe.c
+--- linux-source-2.6.18.orig/fs/pipe.c 2009-01-25 20:06:48.000000000 -0700
++++ linux-source-2.6.18/fs/pipe.c 2009-01-25 20:10:02.000000000 -0700
+@@ -977,7 +977,7 @@ no_files:
* sys_pipe() is the normal C calling standard for creating
* a pipe. It's not the way Unix traditionally does this, though.
*/
@@ -153,10 +153,10 @@
{
int fd[2];
int error;
-diff -urpN linux-source-2.6.24.orig/include/asm-ia64/unistd.h linux-source-2.6.24/include/asm-ia64/unistd.h
---- linux-source-2.6.24.orig/include/asm-ia64/unistd.h 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/include/asm-ia64/unistd.h 2009-01-21 00:29:57.000000000 -0700
-@@ -354,7 +354,7 @@ struct pt_regs;
+diff -urpN linux-source-2.6.18.orig/include/asm-ia64/unistd.h linux-source-2.6.18/include/asm-ia64/unistd.h
+--- linux-source-2.6.18.orig/include/asm-ia64/unistd.h 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/include/asm-ia64/unistd.h 2009-01-25 20:10:02.000000000 -0700
+@@ -402,7 +402,7 @@ struct pt_regs;
struct sigaction;
long sys_execve(char __user *filename, char __user * __user *argv,
char __user * __user *envp, struct pt_regs *regs);
Modified: dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0004pre1-ia64-kill-sys32_pipe.patch
==============================================================================
--- /dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/0004pre1-ia64-kill-sys32_pipe.patch (original)
+++ dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0004pre1-ia64-kill-sys32_pipe.patch Mon Feb 9 15:47:53 2009
@@ -10,12 +10,12 @@
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.24 by dann frazier <dannf at debian.org>
+Adjusted to apply to Debian's 2.6.18 by dann frazier <dannf at debian.org>
-diff -urpN linux-source-2.6.24.orig/arch/ia64/ia32/ia32_entry.S linux-source-2.6.24/arch/ia64/ia32/ia32_entry.S
---- linux-source-2.6.24.orig/arch/ia64/ia32/ia32_entry.S 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/arch/ia64/ia32/ia32_entry.S 2009-01-21 00:15:40.000000000 -0700
-@@ -215,7 +215,7 @@ ia32_syscall_table:
+diff -urpN linux-source-2.6.18.orig/arch/ia64/ia32/ia32_entry.S linux-source-2.6.18/arch/ia64/ia32/ia32_entry.S
+--- linux-source-2.6.18.orig/arch/ia64/ia32/ia32_entry.S 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/arch/ia64/ia32/ia32_entry.S 2009-01-25 20:04:10.000000000 -0700
+@@ -252,7 +252,7 @@ ia32_syscall_table:
data8 sys_mkdir
data8 sys_rmdir /* 40 */
data8 sys_dup
@@ -24,10 +24,10 @@
data8 compat_sys_times
data8 sys_ni_syscall /* old prof syscall holder */
data8 sys32_brk /* 45 */
-diff -urpN linux-source-2.6.24.orig/arch/ia64/ia32/sys_ia32.c linux-source-2.6.24/arch/ia64/ia32/sys_ia32.c
---- linux-source-2.6.24.orig/arch/ia64/ia32/sys_ia32.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/arch/ia64/ia32/sys_ia32.c 2009-01-21 00:15:40.000000000 -0700
-@@ -1137,21 +1137,6 @@ sys32_mremap (unsigned int addr, unsigne
+diff -urpN linux-source-2.6.18.orig/arch/ia64/ia32/sys_ia32.c linux-source-2.6.18/arch/ia64/ia32/sys_ia32.c
+--- linux-source-2.6.18.orig/arch/ia64/ia32/sys_ia32.c 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/arch/ia64/ia32/sys_ia32.c 2009-01-25 20:04:10.000000000 -0700
+@@ -1132,21 +1132,6 @@ sys32_mremap (unsigned int addr, unsigne
return ret;
}
Modified: dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0004pre2-unify-sys_pipe.patch
==============================================================================
--- /dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/0004pre2-unify-sys_pipe.patch (original)
+++ dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0004pre2-unify-sys_pipe.patch Mon Feb 9 15:47:53 2009
@@ -21,11 +21,11 @@
Signed-off-by: Ulrich Drepper <drepper at redhat.com>
Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
-Adjusted to apply to Debian's 2.6.24 by dann frazier <dannf at debian.org>
+Backported to Debian's 2.6.18 by dann frazier <dannf at debian.org>
-diff -urpN linux-source-2.6.24.orig/arch/arm/kernel/sys_arm.c linux-source-2.6.24/arch/arm/kernel/sys_arm.c
---- linux-source-2.6.24.orig/arch/arm/kernel/sys_arm.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/arch/arm/kernel/sys_arm.c 2009-01-21 00:27:33.000000000 -0700
+diff -urpN linux-source-2.6.18.orig/arch/arm/kernel/sys_arm.c linux-source-2.6.18/arch/arm/kernel/sys_arm.c
+--- linux-source-2.6.18.orig/arch/arm/kernel/sys_arm.c 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/arch/arm/kernel/sys_arm.c 2009-01-25 20:04:55.000000000 -0700
@@ -34,23 +34,6 @@ extern unsigned long do_mremap(unsigned
unsigned long new_len, unsigned long flags,
unsigned long new_addr);
@@ -50,21 +50,25 @@
/* common code for old and new mmaps */
inline long do_mmap2(
unsigned long addr, unsigned long len,
-diff -urpN linux-source-2.6.24.orig/arch/avr32/kernel/sys_avr32.c linux-source-2.6.24/arch/avr32/kernel/sys_avr32.c
---- linux-source-2.6.24.orig/arch/avr32/kernel/sys_avr32.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/arch/avr32/kernel/sys_avr32.c 2009-01-21 00:27:33.000000000 -0700
-@@ -14,19 +14,6 @@
- #include <asm/mman.h>
+diff -urpN linux-source-2.6.18.orig/arch/frv/kernel/sys_frv.c linux-source-2.6.18/arch/frv/kernel/sys_frv.c
+--- linux-source-2.6.18.orig/arch/frv/kernel/sys_frv.c 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/arch/frv/kernel/sys_frv.c 2009-01-25 20:05:12.000000000 -0700
+@@ -28,23 +28,6 @@
#include <asm/uaccess.h>
+ #include <asm/ipc.h>
--asmlinkage int sys_pipe(unsigned long __user *filedes)
+-/*
+- * 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(unsigned long __user * fildes)
-{
- int fd[2];
- int error;
-
- error = do_pipe(fd);
- if (!error) {
-- if (copy_to_user(filedes, fd, sizeof(fd)))
+- if (copy_to_user(fildes, fd, 2*sizeof(int)))
- error = -EFAULT;
- }
- return error;
@@ -72,19 +76,19 @@
-
asmlinkage long sys_mmap2(unsigned long addr, unsigned long len,
unsigned long prot, unsigned long flags,
- unsigned long fd, off_t offset)
-diff -urpN linux-source-2.6.24.orig/arch/frv/kernel/sys_frv.c linux-source-2.6.24/arch/frv/kernel/sys_frv.c
---- linux-source-2.6.24.orig/arch/frv/kernel/sys_frv.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/arch/frv/kernel/sys_frv.c 2009-01-21 00:27:37.000000000 -0700
-@@ -28,23 +28,6 @@
- #include <asm/setup.h>
- #include <asm/uaccess.h>
+ unsigned long fd, unsigned long pgoff)
+diff -urpN linux-source-2.6.18.orig/arch/h8300/kernel/sys_h8300.c linux-source-2.6.18/arch/h8300/kernel/sys_h8300.c
+--- linux-source-2.6.18.orig/arch/h8300/kernel/sys_h8300.c 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/arch/h8300/kernel/sys_h8300.c 2009-01-25 20:05:12.000000000 -0700
+@@ -26,23 +26,6 @@
+ #include <asm/traps.h>
+ #include <asm/ipc.h>
-/*
- * 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(unsigned long __user * fildes)
+-asmlinkage int sys_pipe(unsigned long * fildes)
-{
- int fd[2];
- int error;
@@ -97,21 +101,21 @@
- return error;
-}
-
- asmlinkage long sys_mmap2(unsigned long addr, unsigned long len,
- unsigned long prot, unsigned long flags,
- unsigned long fd, unsigned long pgoff)
-diff -urpN linux-source-2.6.24.orig/arch/h8300/kernel/sys_h8300.c linux-source-2.6.24/arch/h8300/kernel/sys_h8300.c
---- linux-source-2.6.24.orig/arch/h8300/kernel/sys_h8300.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/arch/h8300/kernel/sys_h8300.c 2009-01-21 00:27:37.000000000 -0700
-@@ -27,23 +27,6 @@
- #include <asm/traps.h>
- #include <asm/unistd.h>
+ /* common code for old and new mmaps */
+ static inline long do_mmap2(
+ unsigned long addr, unsigned long len,
+diff -urpN linux-source-2.6.18.orig/arch/i386/kernel/sys_i386.c linux-source-2.6.18/arch/i386/kernel/sys_i386.c
+--- linux-source-2.6.18.orig/arch/i386/kernel/sys_i386.c 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/arch/i386/kernel/sys_i386.c 2009-01-25 20:06:26.000000000 -0700
+@@ -23,23 +23,6 @@
+ #include <asm/uaccess.h>
+ #include <asm/ipc.h>
-/*
- * sys_pipe() is the normal C calling standard for creating
-- * a pipe. It's not the way unix traditionally does this, though.
+- * a pipe. It's not the way Unix traditionally does this, though.
- */
--asmlinkage int sys_pipe(unsigned long * fildes)
+-asmlinkage int sys_pipe(unsigned long __user * fildes)
-{
- int fd[2];
- int error;
@@ -124,15 +128,15 @@
- return error;
-}
-
- /* common code for old and new mmaps */
- static inline long do_mmap2(
- unsigned long addr, unsigned long len,
-diff -urpN linux-source-2.6.24.orig/arch/m68k/kernel/sys_m68k.c linux-source-2.6.24/arch/m68k/kernel/sys_m68k.c
---- linux-source-2.6.24.orig/arch/m68k/kernel/sys_m68k.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/arch/m68k/kernel/sys_m68k.c 2009-01-21 00:27:37.000000000 -0700
-@@ -30,23 +30,6 @@
+ asmlinkage long sys_mmap2(unsigned long addr, unsigned long len,
+ unsigned long prot, unsigned long flags,
+ unsigned long fd, unsigned long pgoff)
+diff -urpN linux-source-2.6.18.orig/arch/m68k/kernel/sys_m68k.c linux-source-2.6.18/arch/m68k/kernel/sys_m68k.c
+--- linux-source-2.6.18.orig/arch/m68k/kernel/sys_m68k.c 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/arch/m68k/kernel/sys_m68k.c 2009-01-25 20:05:12.000000000 -0700
+@@ -28,23 +28,6 @@
+ #include <asm/ipc.h>
#include <asm/page.h>
- #include <asm/unistd.h>
-/*
- * sys_pipe() is the normal C calling standard for creating
@@ -154,12 +158,12 @@
/* common code for old and new mmaps */
static inline long do_mmap2(
unsigned long addr, unsigned long len,
-diff -urpN linux-source-2.6.24.orig/arch/m68knommu/kernel/sys_m68k.c linux-source-2.6.24/arch/m68knommu/kernel/sys_m68k.c
---- linux-source-2.6.24.orig/arch/m68knommu/kernel/sys_m68k.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/arch/m68knommu/kernel/sys_m68k.c 2009-01-21 00:27:37.000000000 -0700
-@@ -28,23 +28,6 @@
+diff -urpN linux-source-2.6.18.orig/arch/m68knommu/kernel/sys_m68k.c linux-source-2.6.18/arch/m68knommu/kernel/sys_m68k.c
+--- linux-source-2.6.18.orig/arch/m68knommu/kernel/sys_m68k.c 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/arch/m68knommu/kernel/sys_m68k.c 2009-01-25 20:05:12.000000000 -0700
+@@ -27,23 +27,6 @@
+ #include <asm/ipc.h>
#include <asm/cacheflush.h>
- #include <asm/unistd.h>
-/*
- * sys_pipe() is the normal C calling standard for creating
@@ -181,12 +185,12 @@
/* common code for old and new mmaps */
static inline long do_mmap2(
unsigned long addr, unsigned long len,
-diff -urpN linux-source-2.6.24.orig/arch/parisc/kernel/sys_parisc.c linux-source-2.6.24/arch/parisc/kernel/sys_parisc.c
---- linux-source-2.6.24.orig/arch/parisc/kernel/sys_parisc.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/arch/parisc/kernel/sys_parisc.c 2009-01-21 00:27:49.000000000 -0700
-@@ -33,19 +33,6 @@
- #include <linux/utsname.h>
- #include <linux/personality.h>
+diff -urpN linux-source-2.6.18.orig/arch/parisc/kernel/sys_parisc.c linux-source-2.6.18/arch/parisc/kernel/sys_parisc.c
+--- linux-source-2.6.18.orig/arch/parisc/kernel/sys_parisc.c 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/arch/parisc/kernel/sys_parisc.c 2009-01-25 20:05:12.000000000 -0700
+@@ -32,19 +32,6 @@
+ #include <linux/smp_lock.h>
+ #include <linux/syscalls.h>
-int sys_pipe(int __user *fildes)
-{
@@ -204,10 +208,10 @@
static unsigned long get_unshared_area(unsigned long addr, unsigned long len)
{
struct vm_area_struct *vma;
-diff -urpN linux-source-2.6.24.orig/arch/powerpc/kernel/syscalls.c linux-source-2.6.24/arch/powerpc/kernel/syscalls.c
---- linux-source-2.6.24.orig/arch/powerpc/kernel/syscalls.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/arch/powerpc/kernel/syscalls.c 2009-01-21 00:27:49.000000000 -0700
-@@ -137,23 +137,6 @@ int sys_ipc(uint call, int first, unsign
+diff -urpN linux-source-2.6.18.orig/arch/powerpc/kernel/syscalls.c linux-source-2.6.18/arch/powerpc/kernel/syscalls.c
+--- linux-source-2.6.18.orig/arch/powerpc/kernel/syscalls.c 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/arch/powerpc/kernel/syscalls.c 2009-01-25 20:05:12.000000000 -0700
+@@ -138,23 +138,6 @@ int sys_ipc(uint call, int first, unsign
return ret;
}
@@ -231,12 +235,12 @@
static inline unsigned long do_mmap2(unsigned long addr, size_t len,
unsigned long prot, unsigned long flags,
unsigned long fd, unsigned long off, int shift)
-diff -urpN linux-source-2.6.24.orig/arch/s390/kernel/sys_s390.c linux-source-2.6.24/arch/s390/kernel/sys_s390.c
---- linux-source-2.6.24.orig/arch/s390/kernel/sys_s390.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/arch/s390/kernel/sys_s390.c 2009-01-21 00:27:49.000000000 -0700
-@@ -32,23 +32,6 @@
-
+diff -urpN linux-source-2.6.18.orig/arch/s390/kernel/sys_s390.c linux-source-2.6.18/arch/s390/kernel/sys_s390.c
+--- linux-source-2.6.18.orig/arch/s390/kernel/sys_s390.c 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/arch/s390/kernel/sys_s390.c 2009-01-25 20:05:12.000000000 -0700
+@@ -31,23 +31,6 @@
#include <asm/uaccess.h>
+ #include <asm/ipc.h>
-/*
- * sys_pipe() is the normal C calling standard for creating
@@ -258,10 +262,10 @@
/* common code for old and new mmaps */
static inline long do_mmap2(
unsigned long addr, unsigned long len,
-diff -urpN linux-source-2.6.24.orig/arch/um/kernel/syscall.c linux-source-2.6.24/arch/um/kernel/syscall.c
---- linux-source-2.6.24.orig/arch/um/kernel/syscall.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/arch/um/kernel/syscall.c 2009-01-21 00:27:52.000000000 -0700
-@@ -76,23 +76,6 @@ long old_mmap(unsigned long addr, unsign
+diff -urpN linux-source-2.6.18.orig/arch/um/kernel/syscall.c linux-source-2.6.18/arch/um/kernel/syscall.c
+--- linux-source-2.6.18.orig/arch/um/kernel/syscall.c 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/arch/um/kernel/syscall.c 2009-01-25 20:07:34.000000000 -0700
+@@ -86,23 +86,6 @@ long old_mmap(unsigned long addr, unsign
out:
return err;
}
@@ -271,24 +275,24 @@
- */
-long sys_pipe(unsigned long __user * fildes)
-{
-- int fd[2];
-- long error;
+- int fd[2];
+- long error;
-
-- error = do_pipe(fd);
-- if (!error) {
+- error = do_pipe(fd);
+- if (!error) {
- if (copy_to_user(fildes, fd, sizeof(fd)))
-- error = -EFAULT;
-- }
-- return error;
+- error = -EFAULT;
+- }
+- return error;
-}
-
long sys_uname(struct old_utsname __user * name)
{
-diff -urpN linux-source-2.6.24.orig/arch/v850/kernel/syscalls.c linux-source-2.6.24/arch/v850/kernel/syscalls.c
---- linux-source-2.6.24.orig/arch/v850/kernel/syscalls.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/arch/v850/kernel/syscalls.c 2009-01-21 00:27:52.000000000 -0700
-@@ -133,23 +133,6 @@ sys_ipc (uint call, int first, int secon
+diff -urpN linux-source-2.6.18.orig/arch/v850/kernel/syscalls.c linux-source-2.6.18/arch/v850/kernel/syscalls.c
+--- linux-source-2.6.18.orig/arch/v850/kernel/syscalls.c 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/arch/v850/kernel/syscalls.c 2009-01-25 20:05:19.000000000 -0700
+@@ -134,23 +134,6 @@ sys_ipc (uint call, int first, int secon
return ret;
}
@@ -312,37 +316,10 @@
static inline unsigned long
do_mmap2 (unsigned long addr, size_t len,
unsigned long prot, unsigned long flags,
-diff -urpN linux-source-2.6.24.orig/arch/x86/kernel/sys_i386_32.c linux-source-2.6.24/arch/x86/kernel/sys_i386_32.c
---- linux-source-2.6.24.orig/arch/x86/kernel/sys_i386_32.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/arch/x86/kernel/sys_i386_32.c 2009-01-21 00:27:52.000000000 -0700
-@@ -22,23 +22,6 @@
- #include <asm/uaccess.h>
- #include <asm/unistd.h>
-
--/*
-- * 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 __user * fildes)
--{
-- int fd[2];
-- int error;
--
-- error = do_pipe(fd);
-- if (!error) {
-- if (copy_to_user(fildes, fd, 2*sizeof(int)))
-- error = -EFAULT;
-- }
-- return error;
--}
--
- asmlinkage long sys_mmap2(unsigned long addr, unsigned long len,
- unsigned long prot, unsigned long flags,
- unsigned long fd, unsigned long pgoff)
-diff -urpN linux-source-2.6.24.orig/arch/x86/kernel/sys_x86_64.c linux-source-2.6.24/arch/x86/kernel/sys_x86_64.c
---- linux-source-2.6.24.orig/arch/x86/kernel/sys_x86_64.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/arch/x86/kernel/sys_x86_64.c 2009-01-21 00:27:52.000000000 -0700
-@@ -16,23 +16,6 @@
+diff -urpN linux-source-2.6.18.orig/arch/x86_64/kernel/sys_x86_64.c linux-source-2.6.18/arch/x86_64/kernel/sys_x86_64.c
+--- linux-source-2.6.18.orig/arch/x86_64/kernel/sys_x86_64.c 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/arch/x86_64/kernel/sys_x86_64.c 2009-01-25 20:06:48.000000000 -0700
+@@ -20,23 +20,6 @@
#include <asm/uaccess.h>
#include <asm/ia32.h>
@@ -366,10 +343,10 @@
asmlinkage long sys_mmap(unsigned long addr, unsigned long len, unsigned long prot, unsigned long flags,
unsigned long fd, unsigned long off)
{
-diff -urpN linux-source-2.6.24.orig/fs/pipe.c linux-source-2.6.24/fs/pipe.c
---- linux-source-2.6.24.orig/fs/pipe.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/fs/pipe.c 2009-01-21 00:27:52.000000000 -0700
-@@ -1076,6 +1076,23 @@ int do_pipe(int *fd)
+diff -urpN linux-source-2.6.18.orig/fs/pipe.c linux-source-2.6.18/fs/pipe.c
+--- linux-source-2.6.18.orig/fs/pipe.c 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/fs/pipe.c 2009-01-25 20:06:48.000000000 -0700
+@@ -974,6 +974,23 @@ no_files:
}
/*
@@ -393,9 +370,9 @@
* pipefs should _never_ be mounted by userland - too much of security hassle,
* no real gain from having the whole whorehouse mounted. So we don't need
* any operations on the root directory. However, we need a non-trivial
-diff -urpN linux-source-2.6.24.orig/include/asm-powerpc/syscalls.h linux-source-2.6.24/include/asm-powerpc/syscalls.h
---- linux-source-2.6.24.orig/include/asm-powerpc/syscalls.h 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/include/asm-powerpc/syscalls.h 2009-01-21 00:27:52.000000000 -0700
+diff -urpN linux-source-2.6.18.orig/include/asm-powerpc/syscalls.h linux-source-2.6.18/include/asm-powerpc/syscalls.h
+--- linux-source-2.6.18.orig/include/asm-powerpc/syscalls.h 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/include/asm-powerpc/syscalls.h 2009-01-25 20:06:48.000000000 -0700
@@ -30,7 +30,7 @@ asmlinkage int sys_fork(unsigned long p1
asmlinkage int sys_vfork(unsigned long p1, unsigned long p2,
unsigned long p3, unsigned long p4, unsigned long p5,
Modified: dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0005-Make-sys_pselect7-static.patch
==============================================================================
--- /dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/0005-Make-sys_pselect7-static.patch (original)
+++ dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0005-Make-sys_pselect7-static.patch Mon Feb 9 15:47:53 2009
@@ -14,12 +14,12 @@
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.24 by dann frazier <dannf at debian.org>
+Adjusted to apply to Debian's 2.6.18 by dann frazier <dannf at debian.org>
-diff -urpN linux-source-2.6.24.orig/fs/compat.c linux-source-2.6.24/fs/compat.c
---- linux-source-2.6.24.orig/fs/compat.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/fs/compat.c 2009-01-21 00:40:29.000000000 -0700
-@@ -1642,7 +1642,7 @@ sticky:
+diff -urpN linux-source-2.6.18.orig/fs/compat.c linux-source-2.6.18/fs/compat.c
+--- linux-source-2.6.18.orig/fs/compat.c 2008-12-25 14:04:13.000000000 -0700
++++ linux-source-2.6.18/fs/compat.c 2009-01-25 20:11:03.000000000 -0700
+@@ -1808,7 +1808,7 @@ sticky:
}
#ifdef TIF_RESTORE_SIGMASK
@@ -28,7 +28,7 @@
compat_ulong_t __user *outp, compat_ulong_t __user *exp,
struct compat_timespec __user *tsp, compat_sigset_t __user *sigmask,
compat_size_t sigsetsize)
-@@ -1750,8 +1750,8 @@ asmlinkage long compat_sys_pselect6(int
+@@ -1901,8 +1901,8 @@ asmlinkage long compat_sys_pselect6(int
(compat_size_t __user *)(sig+sizeof(up))))
return -EFAULT;
}
@@ -39,10 +39,10 @@
}
asmlinkage long compat_sys_ppoll(struct pollfd __user *ufds,
-diff -urpN linux-source-2.6.24.orig/fs/select.c linux-source-2.6.24/fs/select.c
---- linux-source-2.6.24.orig/fs/select.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/fs/select.c 2009-01-21 00:41:11.000000000 -0700
-@@ -426,9 +426,9 @@ sticky:
+diff -urpN linux-source-2.6.18.orig/fs/select.c linux-source-2.6.18/fs/select.c
+--- linux-source-2.6.18.orig/fs/select.c 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/fs/select.c 2009-01-25 20:11:03.000000000 -0700
+@@ -434,9 +434,9 @@ sticky:
}
#ifdef TIF_RESTORE_SIGMASK
@@ -55,7 +55,7 @@
{
s64 timeout = MAX_SCHEDULE_TIMEOUT;
sigset_t ksigmask, sigsaved;
-@@ -526,7 +526,7 @@ asmlinkage long sys_pselect6(int n, fd_s
+@@ -534,7 +534,7 @@ asmlinkage long sys_pselect6(int n, fd_s
return -EFAULT;
}
Modified: dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0006-Make-sys_syslog-a-conditional-system.patch
==============================================================================
--- /dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/0006-Make-sys_syslog-a-conditional-system.patch (original)
+++ dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0006-Make-sys_syslog-a-conditional-system.patch Mon Feb 9 15:47:53 2009
@@ -14,27 +14,27 @@
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.24 by dann frazier <dannf at debian.org>
+Backported to Debian's 2.6.18 by dann frazier <dannf at debian.org>
-diff -urpN linux-source-2.6.24.orig/kernel/printk.c linux-source-2.6.24/kernel/printk.c
---- linux-source-2.6.24.orig/kernel/printk.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/kernel/printk.c 2009-01-21 00:42:57.000000000 -0700
-@@ -755,11 +755,6 @@ EXPORT_SYMBOL(vprintk);
+diff -urpN linux-source-2.6.18.orig/kernel/printk.c linux-source-2.6.18/kernel/printk.c
+--- linux-source-2.6.18.orig/kernel/printk.c 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/kernel/printk.c 2009-01-25 20:16:55.000000000 -0700
+@@ -628,11 +628,6 @@ EXPORT_SYMBOL(vprintk);
#else
-asmlinkage long sys_syslog(int type, char __user *buf, int len)
-{
-- return -ENOSYS;
+- return 0;
-}
-
- static void call_console_drivers(unsigned long start, unsigned long end)
+ int do_syslog(int type, char __user *buf, int len)
{
- }
-diff -urpN linux-source-2.6.24.orig/kernel/sys_ni.c linux-source-2.6.24/kernel/sys_ni.c
---- linux-source-2.6.24.orig/kernel/sys_ni.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/kernel/sys_ni.c 2009-01-21 00:42:23.000000000 -0700
-@@ -121,6 +121,7 @@ cond_syscall(sys_vm86old);
+ return 0;
+diff -urpN linux-source-2.6.18.orig/kernel/sys_ni.c linux-source-2.6.18/kernel/sys_ni.c
+--- linux-source-2.6.18.orig/kernel/sys_ni.c 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/kernel/sys_ni.c 2009-01-25 20:12:07.000000000 -0700
+@@ -111,6 +111,7 @@ cond_syscall(sys_vm86old);
cond_syscall(sys_vm86);
cond_syscall(compat_sys_ipc);
cond_syscall(compat_sys_sysctl);
Modified: dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0007-System-call-wrapper-infrastructure.patch
==============================================================================
--- /dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/0007-System-call-wrapper-infrastructure.patch (original)
+++ dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0007-System-call-wrapper-infrastructure.patch Mon Feb 9 15:47:53 2009
@@ -21,12 +21,12 @@
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.24 by dann frazier <dannf at debian.org>
+Backported to Debian's 2.6.18 by dann frazier <dannf at debian.org>
-diff -urpN linux-source-2.6.24.orig/include/linux/syscalls.h linux-source-2.6.24/include/linux/syscalls.h
---- linux-source-2.6.24.orig/include/linux/syscalls.h 2009-01-21 00:13:05.000000000 -0700
-+++ linux-source-2.6.24/include/linux/syscalls.h 2009-01-21 00:43:49.000000000 -0700
-@@ -67,6 +67,68 @@ struct old_linux_dirent;
+diff -urpN linux-source-2.6.18.orig/include/linux/syscalls.h linux-source-2.6.18/include/linux/syscalls.h
+--- linux-source-2.6.18.orig/include/linux/syscalls.h 2009-01-25 19:59:00.000000000 -0700
++++ linux-source-2.6.18/include/linux/syscalls.h 2009-01-25 20:19:01.000000000 -0700
+@@ -66,6 +66,68 @@ struct old_linux_dirent;
#include <linux/quota.h>
#include <linux/key.h>
Modified: dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0008-powerpc-Enable-syscall-wrappers-for.patch
==============================================================================
--- /dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/0008-powerpc-Enable-syscall-wrappers-for.patch (original)
+++ dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0008-powerpc-Enable-syscall-wrappers-for.patch Mon Feb 9 15:47:53 2009
@@ -14,12 +14,12 @@
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.24 by dann frazier <dannf at debian.org>
+Backported to Debian's 2.6.18 by dann frazier <dannf at debian.org>
-diff -urpN linux-source-2.6.24.orig/arch/powerpc/Kconfig linux-source-2.6.24/arch/powerpc/Kconfig
---- linux-source-2.6.24.orig/arch/powerpc/Kconfig 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/arch/powerpc/Kconfig 2009-01-21 00:47:56.000000000 -0700
-@@ -79,6 +79,7 @@ config ARCH_NO_VIRT_TO_BUS
+diff -urpN linux-source-2.6.18.orig/arch/powerpc/Kconfig linux-source-2.6.18/arch/powerpc/Kconfig
+--- linux-source-2.6.18.orig/arch/powerpc/Kconfig 2008-12-25 14:04:12.000000000 -0700
++++ linux-source-2.6.18/arch/powerpc/Kconfig 2009-01-25 20:19:42.000000000 -0700
+@@ -56,6 +56,7 @@ config GENERIC_FIND_NEXT_BIT
config PPC
bool
default y
@@ -27,10 +27,10 @@
config EARLY_PRINTK
bool
-diff -urpN linux-source-2.6.24.orig/include/linux/syscalls.h linux-source-2.6.24/include/linux/syscalls.h
---- linux-source-2.6.24.orig/include/linux/syscalls.h 2009-01-21 00:43:49.000000000 -0700
-+++ linux-source-2.6.24/include/linux/syscalls.h 2009-01-21 00:45:15.000000000 -0700
-@@ -104,8 +104,14 @@ struct old_linux_dirent;
+diff -urpN linux-source-2.6.18.orig/include/linux/syscalls.h linux-source-2.6.18/include/linux/syscalls.h
+--- linux-source-2.6.18.orig/include/linux/syscalls.h 2009-01-25 20:19:01.000000000 -0700
++++ linux-source-2.6.18/include/linux/syscalls.h 2009-01-25 20:19:42.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__)
Modified: dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0009-s390-enable-system-call-wrappers.patch
==============================================================================
--- /dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/0009-s390-enable-system-call-wrappers.patch (original)
+++ dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0009-s390-enable-system-call-wrappers.patch Mon Feb 9 15:47:53 2009
@@ -9,20 +9,30 @@
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(+)
-Backported to Debian's 2.6.24 by dann frazier <dannf at debian.org>
+Backported to Debian's 2.6.18 by dann frazier <dannf at debian.org>
-diff -urpN linux-source-2.6.24.orig/arch/s390/Kconfig linux-source-2.6.24/arch/s390/Kconfig
---- linux-source-2.6.24.orig/arch/s390/Kconfig 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/arch/s390/Kconfig 2009-01-21 00:49:39.000000000 -0700
-@@ -51,6 +51,7 @@ mainmenu "Linux Kernel Configuration"
-
+diff -urpN linux-source-2.6.18.orig/arch/s390/Kconfig linux-source-2.6.18/arch/s390/Kconfig
+--- linux-source-2.6.18.orig/arch/s390/Kconfig 2008-12-25 14:04:12.000000000 -0700
++++ linux-source-2.6.18/arch/s390/Kconfig 2009-01-25 20:20:42.000000000 -0700
+@@ -38,6 +38,7 @@ mainmenu "Linux Kernel Configuration"
config S390
- def_bool y
+ bool
+ default y
+ select HAVE_SYSCALL_WRAPPERS
source "init/Kconfig"
+diff -urpN linux-source-2.6.18.orig/arch/s390/Kconfig.debug linux-source-2.6.18/arch/s390/Kconfig.debug
+--- linux-source-2.6.18.orig/arch/s390/Kconfig.debug 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/arch/s390/Kconfig.debug 1969-12-31 17:00:00.000000000 -0700
+@@ -1,9 +0,0 @@
+-menu "Kernel hacking"
+-
+-config TRACE_IRQFLAGS_SUPPORT
+- bool
+- default y
+-
+-source "lib/Kconfig.debug"
+-
+-endmenu
Modified: dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0010-System-call-wrapper-special-cases.patch
==============================================================================
--- /dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/0010-System-call-wrapper-special-cases.patch (original)
+++ dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0010-System-call-wrapper-special-cases.patch Mon Feb 9 15:47:53 2009
@@ -18,12 +18,12 @@
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.24 by dann frazier <dannf at debian.org>
+Backported to Debian's 2.6.18 by dann frazier <dannf at debian.org>
-diff -urpN linux-source-2.6.24.orig/fs/dcookies.c linux-source-2.6.24/fs/dcookies.c
---- linux-source-2.6.24.orig/fs/dcookies.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/fs/dcookies.c 2009-01-21 00:50:44.000000000 -0700
-@@ -143,7 +143,7 @@ out:
+diff -urpN a/fs/dcookies.c b/fs/dcookies.c
+--- a/fs/dcookies.c 2006-09-19 21:42:06.000000000 -0600
++++ b/fs/dcookies.c 2009-01-28 23:43:16.000000000 -0700
+@@ -142,7 +142,7 @@ out:
/* And here is where the userspace process can look up the cookie value
* to retrieve the path.
*/
@@ -32,7 +32,7 @@
{
unsigned long cookie = (unsigned long)cookie64;
int err = -EINVAL;
-@@ -196,7 +196,13 @@ out:
+@@ -195,7 +195,13 @@ out:
mutex_unlock(&dcookie_mutex);
return err;
}
@@ -47,10 +47,10 @@
static int dcookie_init(void)
{
-diff -urpN linux-source-2.6.24.orig/fs/open.c linux-source-2.6.24/fs/open.c
---- linux-source-2.6.24.orig/fs/open.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/fs/open.c 2009-01-21 00:52:46.000000000 -0700
-@@ -341,21 +341,35 @@ asmlinkage long sys_ftruncate(unsigned i
+diff -urpN a/fs/open.c b/fs/open.c
+--- a/fs/open.c 2009-01-28 23:42:25.000000000 -0700
++++ b/fs/open.c 2009-01-29 00:00:14.000000000 -0700
+@@ -342,19 +342,26 @@ asmlinkage long sys_ftruncate(unsigned i
/* LFS versions of truncate are only needed on 32 bit machines */
#if BITS_PER_LONG == 32
@@ -75,38 +75,23 @@
prevent_tail_call(ret);
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
+#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;
-@@ -412,6 +426,13 @@ out_fput:
+ #ifdef __ARCH_WANT_SYS_UTIME
+
+@@ -418,7 +425,6 @@ dput_and_out:
out:
- return ret;
+ return error;
}
-+#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
+-
+ #endif
- /*
- * access() needs to use the real uid/gid, not the effective uid/gid.
-diff -urpN linux-source-2.6.24.orig/fs/read_write.c linux-source-2.6.24/fs/read_write.c
---- linux-source-2.6.24.orig/fs/read_write.c 2009-01-21 00:05:39.000000000 -0700
-+++ linux-source-2.6.24/fs/read_write.c 2009-01-21 00:50:44.000000000 -0700
-@@ -389,8 +389,8 @@ asmlinkage long sys_write(unsigned int f
+ /* If times==NULL, set access and modification to current time,
+diff -urpN a/fs/read_write.c b/fs/read_write.c
+--- a/fs/read_write.c 2009-01-28 23:42:26.000000000 -0700
++++ b/fs/read_write.c 2009-01-28 23:43:16.000000000 -0700
+@@ -374,8 +374,8 @@ asmlinkage long sys_write(unsigned int f
return ret;
}
@@ -117,7 +102,7 @@
{
struct file *file;
ssize_t ret = -EBADF;
-@@ -409,9 +409,17 @@ asmlinkage long sys_pread64(unsigned int
+@@ -394,9 +394,17 @@ asmlinkage long sys_pread64(unsigned int
return ret;
}
@@ -137,7 +122,7 @@
{
struct file *file;
ssize_t ret = -EBADF;
-@@ -430,6 +438,14 @@ asmlinkage long sys_pwrite64(unsigned in
+@@ -415,6 +423,14 @@ asmlinkage long sys_pwrite64(unsigned in
return ret;
}
@@ -152,10 +137,10 @@
/*
* Reduce an iovec's length in-place. Return the resulting number of segments
-diff -urpN linux-source-2.6.24.orig/fs/sync.c linux-source-2.6.24/fs/sync.c
---- linux-source-2.6.24.orig/fs/sync.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/fs/sync.c 2009-01-21 00:50:44.000000000 -0700
-@@ -174,8 +174,8 @@ asmlinkage long sys_fdatasync(unsigned i
+diff -urpN a/fs/sync.c b/fs/sync.c
+--- a/fs/sync.c 2006-09-19 21:42:06.000000000 -0600
++++ b/fs/sync.c 2009-01-28 23:57:14.000000000 -0700
+@@ -60,8 +60,8 @@
* already-instantiated disk blocks, there are no guarantees here that the data
* will be available after a crash.
*/
@@ -166,7 +151,7 @@
{
int ret;
struct file *file;
-@@ -235,14 +235,32 @@ out_put:
+@@ -121,6 +121,15 @@ out_put:
out:
return ret;
}
@@ -180,31 +165,12 @@
+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.24.orig/ipc/sem.c linux-source-2.6.24/ipc/sem.c
---- linux-source-2.6.24.orig/ipc/sem.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/ipc/sem.c 2009-01-21 00:50:44.000000000 -0700
-@@ -960,7 +960,7 @@ out_unlock:
+diff -urpN a/ipc/sem.c b/ipc/sem.c
+--- a/ipc/sem.c 2006-09-19 21:42:06.000000000 -0600
++++ b/ipc/sem.c 2009-01-28 23:43:16.000000000 -0700
+@@ -868,7 +868,7 @@ out_unlock:
return err;
}
@@ -213,7 +179,7 @@
{
int err = -EINVAL;
int version;
-@@ -998,6 +998,13 @@ asmlinkage long sys_semctl (int semid, i
+@@ -904,6 +904,13 @@ asmlinkage long sys_semctl (int semid, i
return -EINVAL;
}
}
@@ -225,11 +191,11 @@
+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.24.orig/mm/fadvise.c linux-source-2.6.24/mm/fadvise.c
---- linux-source-2.6.24.orig/mm/fadvise.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/mm/fadvise.c 2009-01-21 00:50:44.000000000 -0700
+ static inline void lock_semundo(void)
+ {
+diff -urpN a/mm/fadvise.c b/mm/fadvise.c
+--- a/mm/fadvise.c 2006-09-19 21:42:06.000000000 -0600
++++ b/mm/fadvise.c 2009-01-28 23:43:16.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.
@@ -267,10 +233,10 @@
+#endif
#endif
-diff -urpN linux-source-2.6.24.orig/mm/filemap.c linux-source-2.6.24/mm/filemap.c
---- linux-source-2.6.24.orig/mm/filemap.c 2009-01-21 00:05:39.000000000 -0700
-+++ linux-source-2.6.24/mm/filemap.c 2009-01-21 00:50:44.000000000 -0700
-@@ -1231,7 +1231,7 @@ do_readahead(struct address_space *mappi
+diff -urpN a/mm/filemap.c b/mm/filemap.c
+--- a/mm/filemap.c 2009-01-28 23:42:26.000000000 -0700
++++ b/mm/filemap.c 2009-01-28 23:43:16.000000000 -0700
+@@ -1285,7 +1285,7 @@ do_readahead(struct address_space *mappi
return 0;
}
@@ -279,7 +245,7 @@
{
ssize_t ret;
struct file *file;
-@@ -1250,6 +1250,13 @@ asmlinkage long sys_readahead(int fd, lo
+@@ -1304,6 +1304,13 @@ asmlinkage long sys_readahead(int fd, lo
}
return ret;
}
@@ -292,4 +258,4 @@
+#endif
#ifdef CONFIG_MMU
- /**
+ static int FASTCALL(page_cache_read(struct file * file, unsigned long offset));
Modified: dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0011-System-call-wrappers-part-01.patch
==============================================================================
--- /dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/0011-System-call-wrappers-part-01.patch (original)
+++ dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0011-System-call-wrappers-part-01.patch Mon Feb 9 15:47:53 2009
@@ -10,12 +10,12 @@
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.24 by dann frazier <dannf at debian.org>
+Adjusted to apply to Debian's 2.6.18 by dann frazier <dannf at debian.org>
-diff -urpN linux-source-2.6.24.orig/kernel/hrtimer.c linux-source-2.6.24/kernel/hrtimer.c
---- linux-source-2.6.24.orig/kernel/hrtimer.c 2008-10-10 00:11:27.000000000 -0600
-+++ linux-source-2.6.24/kernel/hrtimer.c 2009-01-21 00:54:00.000000000 -0700
-@@ -1379,8 +1379,8 @@ long hrtimer_nanosleep(struct timespec *
+diff -urpN linux-source-2.6.18.orig/kernel/hrtimer.c linux-source-2.6.18/kernel/hrtimer.c
+--- linux-source-2.6.18.orig/kernel/hrtimer.c 2008-12-25 14:04:14.000000000 -0700
++++ linux-source-2.6.18/kernel/hrtimer.c 2009-01-25 20:31:17.000000000 -0700
+@@ -774,8 +774,8 @@ long hrtimer_nanosleep(struct timespec *
return -ERESTART_RESTARTBLOCK;
}
@@ -26,10 +26,10 @@
{
struct timespec tu;
-diff -urpN linux-source-2.6.24.orig/kernel/sys.c linux-source-2.6.24/kernel/sys.c
---- linux-source-2.6.24.orig/kernel/sys.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/kernel/sys.c 2009-01-21 00:54:00.000000000 -0700
-@@ -862,7 +862,7 @@ asmlinkage long sys_setfsgid(gid_t gid)
+diff -urpN linux-source-2.6.18.orig/kernel/sys.c linux-source-2.6.18/kernel/sys.c
+--- linux-source-2.6.18.orig/kernel/sys.c 2008-12-25 14:04:14.000000000 -0700
++++ linux-source-2.6.18/kernel/sys.c 2009-01-25 20:31:17.000000000 -0700
+@@ -1196,7 +1196,7 @@ asmlinkage long sys_setfsgid(gid_t gid)
return old_fsgid;
}
@@ -38,28 +38,28 @@
{
/*
* In the SMP world we might just be unlucky and have one of
-diff -urpN linux-source-2.6.24.orig/kernel/time.c linux-source-2.6.24/kernel/time.c
---- linux-source-2.6.24.orig/kernel/time.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/kernel/time.c 2009-01-21 00:54:34.000000000 -0700
-@@ -55,7 +55,7 @@ EXPORT_SYMBOL(sys_tz);
+diff -urpN linux-source-2.6.18.orig/kernel/time.c linux-source-2.6.18/kernel/time.c
+--- linux-source-2.6.18.orig/kernel/time.c 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/kernel/time.c 2009-01-25 20:31:58.000000000 -0700
+@@ -56,7 +56,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();
-
-@@ -73,7 +73,7 @@ asmlinkage long sys_time(time_t __user *
+ time_t i;
+ struct timeval tv;
+@@ -78,7 +78,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;
-@@ -93,7 +93,8 @@ asmlinkage long sys_stime(time_t __user
+@@ -98,7 +98,8 @@ asmlinkage long sys_stime(time_t __user
#endif /* __ARCH_WANT_SYS_TIME */
@@ -69,7 +69,7 @@
{
if (likely(tv != NULL)) {
struct timeval ktv;
-@@ -176,8 +177,8 @@ int do_sys_settimeofday(struct timespec
+@@ -181,8 +182,8 @@ int do_sys_settimeofday(struct timespec
return 0;
}
@@ -80,8 +80,8 @@
{
struct timeval user_tv;
struct timespec new_ts;
-@@ -197,7 +198,7 @@ asmlinkage long sys_settimeofday(struct
- return do_sys_settimeofday(tv ? &new_ts : NULL, tz ? &new_tz : NULL);
+@@ -375,7 +376,7 @@ leave: if ((time_status & (STA_UNSYNC|ST
+ return(result);
}
-asmlinkage long sys_adjtimex(struct timex __user *txc_p)
@@ -89,10 +89,10 @@
{
struct timex txc; /* Local copy of parameter */
int ret;
-diff -urpN linux-source-2.6.24.orig/kernel/timer.c linux-source-2.6.24/kernel/timer.c
---- linux-source-2.6.24.orig/kernel/timer.c 2009-01-21 00:05:39.000000000 -0700
-+++ linux-source-2.6.24/kernel/timer.c 2009-01-21 00:54:00.000000000 -0700
-@@ -947,7 +947,7 @@ void do_timer(unsigned long ticks)
+diff -urpN linux-source-2.6.18.orig/kernel/timer.c linux-source-2.6.18/kernel/timer.c
+--- linux-source-2.6.18.orig/kernel/timer.c 2009-01-25 19:39:05.000000000 -0700
++++ linux-source-2.6.18/kernel/timer.c 2009-01-25 20:31:17.000000000 -0700
+@@ -1295,7 +1295,7 @@ void do_timer(struct pt_regs *regs)
* For backwards compatibility? This can be done in libc so Alpha
* and all newer ports shouldn't need it.
*/
@@ -101,21 +101,21 @@
{
return alarm_setitimer(seconds);
}
-@@ -970,7 +970,7 @@ asmlinkage long sys_alarm(unsigned int s
+@@ -1318,7 +1318,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);
+ return current->tgid;
}
-@@ -1116,7 +1116,7 @@ signed long __sched schedule_timeout_uni
+@@ -1465,7 +1465,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);
+ return current->pid;
}
Modified: dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0012-System-call-wrappers-part-02.patch
==============================================================================
--- /dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/0012-System-call-wrappers-part-02.patch (original)
+++ dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0012-System-call-wrappers-part-02.patch Mon Feb 9 15:47:53 2009
@@ -10,12 +10,12 @@
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.24 by dann frazier <dannf at debian.org>
+Adjusted to apply to Debian's 2.6.18 by dann frazier <dannf at debian.org>
-diff -urpN linux-source-2.6.24.orig/kernel/sys.c linux-source-2.6.24/kernel/sys.c
---- linux-source-2.6.24.orig/kernel/sys.c 2009-01-21 00:54:00.000000000 -0700
-+++ linux-source-2.6.24/kernel/sys.c 2009-01-21 00:56:20.000000000 -0700
-@@ -742,7 +742,7 @@ asmlinkage long sys_setresuid(uid_t ruid
+diff -urpN linux-source-2.6.18.orig/kernel/sys.c linux-source-2.6.18/kernel/sys.c
+--- linux-source-2.6.18.orig/kernel/sys.c 2009-01-25 20:31:17.000000000 -0700
++++ linux-source-2.6.18/kernel/sys.c 2009-01-25 20:34:36.000000000 -0700
+@@ -1071,7 +1071,7 @@ asmlinkage long sys_setresuid(uid_t ruid
return security_task_post_setuid(old_ruid, old_euid, old_suid, LSM_SETID_RES);
}
@@ -24,7 +24,7 @@
{
int retval;
-@@ -793,7 +793,7 @@ asmlinkage long sys_setresgid(gid_t rgid
+@@ -1123,7 +1123,7 @@ asmlinkage long sys_setresgid(gid_t rgid
return 0;
}
@@ -33,16 +33,16 @@
{
int retval;
-@@ -987,7 +987,7 @@ out:
+@@ -1319,7 +1319,7 @@ out:
return err;
}
-asmlinkage long sys_getpgid(pid_t pid)
+SYSCALL_DEFINE1(getpgid, pid_t, pid)
{
- if (!pid)
- return task_pgrp_vnr(current);
-@@ -1013,7 +1013,7 @@ asmlinkage long sys_getpgid(pid_t pid)
+ if (!pid) {
+ return process_group(current);
+@@ -1343,7 +1343,7 @@ asmlinkage long sys_getpgid(pid_t pid)
#ifdef __ARCH_WANT_SYS_GETPGRP
@@ -50,20 +50,20 @@
+SYSCALL_DEFINE0(getpgrp)
{
/* SMP - assuming writes are word atomic this is fine */
- return task_pgrp_vnr(current);
-@@ -1021,7 +1021,7 @@ asmlinkage long sys_getpgrp(void)
+ return process_group(current);
+@@ -1351,7 +1351,7 @@ asmlinkage long sys_getpgrp(void)
#endif
-asmlinkage long sys_getsid(pid_t pid)
+SYSCALL_DEFINE1(getsid, pid_t, pid)
{
- if (!pid)
- return task_session_vnr(current);
-diff -urpN linux-source-2.6.24.orig/kernel/timer.c linux-source-2.6.24/kernel/timer.c
---- linux-source-2.6.24.orig/kernel/timer.c 2009-01-21 00:54:00.000000000 -0700
-+++ linux-source-2.6.24/kernel/timer.c 2009-01-21 00:55:17.000000000 -0700
-@@ -981,7 +981,7 @@ SYSCALL_DEFINE0(getpid)
+ if (!pid) {
+ return current->signal->session;
+diff -urpN linux-source-2.6.18.orig/kernel/timer.c linux-source-2.6.18/kernel/timer.c
+--- linux-source-2.6.18.orig/kernel/timer.c 2009-01-25 20:31:17.000000000 -0700
++++ linux-source-2.6.18/kernel/timer.c 2009-01-25 20:34:36.000000000 -0700
+@@ -1329,7 +1329,7 @@ SYSCALL_DEFINE0(getpid)
* value of ->real_parent under rcu_read_lock(), see
* release_task()->call_rcu(delayed_put_task_struct).
*/
@@ -72,7 +72,7 @@
{
int pid;
-@@ -992,25 +992,25 @@ asmlinkage long sys_getppid(void)
+@@ -1340,25 +1340,25 @@ asmlinkage long sys_getppid(void)
return pid;
}
@@ -102,1405 +102,3 @@
{
/* Only we change this so SMP safe */
return current->egid;
-diff -urpN linux-source-2.6.24.orig/kernel/timer.c.orig linux-source-2.6.24/kernel/timer.c.orig
---- linux-source-2.6.24.orig/kernel/timer.c.orig 1969-12-31 17:00:00.000000000 -0700
-+++ linux-source-2.6.24/kernel/timer.c.orig 2009-01-21 00:54:00.000000000 -0700
-@@ -0,0 +1,1398 @@
-+/*
-+ * linux/kernel/timer.c
-+ *
-+ * Kernel internal timers, basic process system calls
-+ *
-+ * Copyright (C) 1991, 1992 Linus Torvalds
-+ *
-+ * 1997-01-28 Modified by Finn Arne Gangstad to make timers scale better.
-+ *
-+ * 1997-09-10 Updated NTP code according to technical memorandum Jan '96
-+ * "A Kernel Model for Precision Timekeeping" by Dave Mills
-+ * 1998-12-24 Fixed a xtime SMP race (we need the xtime_lock rw spinlock to
-+ * serialize accesses to xtime/lost_ticks).
-+ * Copyright (C) 1998 Andrea Arcangeli
-+ * 1999-03-10 Improved NTP compatibility by Ulrich Windl
-+ * 2002-05-31 Move sys_sysinfo here and make its locking sane, Robert Love
-+ * 2000-10-05 Implemented scalable SMP per-CPU timer handling.
-+ * Copyright (C) 2000, 2001, 2002 Ingo Molnar
-+ * Designed by David S. Miller, Alexey Kuznetsov and Ingo Molnar
-+ */
-+
-+#include <linux/kernel_stat.h>
-+#include <linux/module.h>
-+#include <linux/interrupt.h>
-+#include <linux/percpu.h>
-+#include <linux/init.h>
-+#include <linux/mm.h>
-+#include <linux/swap.h>
-+#include <linux/pid_namespace.h>
-+#include <linux/notifier.h>
-+#include <linux/thread_info.h>
-+#include <linux/time.h>
-+#include <linux/jiffies.h>
-+#include <linux/posix-timers.h>
-+#include <linux/cpu.h>
-+#include <linux/syscalls.h>
-+#include <linux/delay.h>
-+#include <linux/tick.h>
-+#include <linux/kallsyms.h>
-+
-+#include <asm/uaccess.h>
-+#include <asm/unistd.h>
-+#include <asm/div64.h>
-+#include <asm/timex.h>
-+#include <asm/io.h>
-+
-+u64 jiffies_64 __cacheline_aligned_in_smp = INITIAL_JIFFIES;
-+
-+EXPORT_SYMBOL(jiffies_64);
-+
-+/*
-+ * per-CPU timer vector definitions:
-+ */
-+#define TVN_BITS (CONFIG_BASE_SMALL ? 4 : 6)
-+#define TVR_BITS (CONFIG_BASE_SMALL ? 6 : 8)
-+#define TVN_SIZE (1 << TVN_BITS)
-+#define TVR_SIZE (1 << TVR_BITS)
-+#define TVN_MASK (TVN_SIZE - 1)
-+#define TVR_MASK (TVR_SIZE - 1)
-+
-+typedef struct tvec_s {
-+ struct list_head vec[TVN_SIZE];
-+} tvec_t;
-+
-+typedef struct tvec_root_s {
-+ struct list_head vec[TVR_SIZE];
-+} tvec_root_t;
-+
-+struct tvec_t_base_s {
-+ spinlock_t lock;
-+ struct timer_list *running_timer;
-+ unsigned long timer_jiffies;
-+ tvec_root_t tv1;
-+ tvec_t tv2;
-+ tvec_t tv3;
-+ tvec_t tv4;
-+ tvec_t tv5;
-+} ____cacheline_aligned;
-+
-+typedef struct tvec_t_base_s tvec_base_t;
-+
-+tvec_base_t boot_tvec_bases;
-+EXPORT_SYMBOL(boot_tvec_bases);
-+static DEFINE_PER_CPU(tvec_base_t *, tvec_bases) = &boot_tvec_bases;
-+
-+/*
-+ * Note that all tvec_bases is 2 byte aligned and lower bit of
-+ * base in timer_list is guaranteed to be zero. Use the LSB for
-+ * the new flag to indicate whether the timer is deferrable
-+ */
-+#define TBASE_DEFERRABLE_FLAG (0x1)
-+
-+/* Functions below help us manage 'deferrable' flag */
-+static inline unsigned int tbase_get_deferrable(tvec_base_t *base)
-+{
-+ return ((unsigned int)(unsigned long)base & TBASE_DEFERRABLE_FLAG);
-+}
-+
-+static inline tvec_base_t *tbase_get_base(tvec_base_t *base)
-+{
-+ return ((tvec_base_t *)((unsigned long)base & ~TBASE_DEFERRABLE_FLAG));
-+}
-+
-+static inline void timer_set_deferrable(struct timer_list *timer)
-+{
-+ timer->base = ((tvec_base_t *)((unsigned long)(timer->base) |
-+ TBASE_DEFERRABLE_FLAG));
-+}
-+
-+static inline void
-+timer_set_base(struct timer_list *timer, tvec_base_t *new_base)
-+{
-+ timer->base = (tvec_base_t *)((unsigned long)(new_base) |
-+ tbase_get_deferrable(timer->base));
-+}
-+
-+/**
-+ * __round_jiffies - function to round jiffies to a full second
-+ * @j: the time in (absolute) jiffies that should be rounded
-+ * @cpu: the processor number on which the timeout will happen
-+ *
-+ * __round_jiffies() rounds an absolute time in the future (in jiffies)
-+ * up or down to (approximately) full seconds. This is useful for timers
-+ * for which the exact time they fire does not matter too much, as long as
-+ * they fire approximately every X seconds.
-+ *
-+ * By rounding these timers to whole seconds, all such timers will fire
-+ * at the same time, rather than at various times spread out. The goal
-+ * of this is to have the CPU wake up less, which saves power.
-+ *
-+ * The exact rounding is skewed for each processor to avoid all
-+ * processors firing at the exact same time, which could lead
-+ * to lock contention or spurious cache line bouncing.
-+ *
-+ * The return value is the rounded version of the @j parameter.
-+ */
-+unsigned long __round_jiffies(unsigned long j, int cpu)
-+{
-+ int rem;
-+ unsigned long original = j;
-+
-+ /*
-+ * We don't want all cpus firing their timers at once hitting the
-+ * same lock or cachelines, so we skew each extra cpu with an extra
-+ * 3 jiffies. This 3 jiffies came originally from the mm/ code which
-+ * already did this.
-+ * The skew is done by adding 3*cpunr, then round, then subtract this
-+ * extra offset again.
-+ */
-+ j += cpu * 3;
-+
-+ rem = j % HZ;
-+
-+ /*
-+ * If the target jiffie is just after a whole second (which can happen
-+ * due to delays of the timer irq, long irq off times etc etc) then
-+ * we should round down to the whole second, not up. Use 1/4th second
-+ * as cutoff for this rounding as an extreme upper bound for this.
-+ */
-+ if (rem < HZ/4) /* round down */
-+ j = j - rem;
-+ else /* round up */
-+ j = j - rem + HZ;
-+
-+ /* now that we have rounded, subtract the extra skew again */
-+ j -= cpu * 3;
-+
-+ if (j <= jiffies) /* rounding ate our timeout entirely; */
-+ return original;
-+ return j;
-+}
-+EXPORT_SYMBOL_GPL(__round_jiffies);
-+
-+/**
-+ * __round_jiffies_relative - function to round jiffies to a full second
-+ * @j: the time in (relative) jiffies that should be rounded
-+ * @cpu: the processor number on which the timeout will happen
-+ *
-+ * __round_jiffies_relative() rounds a time delta in the future (in jiffies)
-+ * up or down to (approximately) full seconds. This is useful for timers
-+ * for which the exact time they fire does not matter too much, as long as
-+ * they fire approximately every X seconds.
-+ *
-+ * By rounding these timers to whole seconds, all such timers will fire
-+ * at the same time, rather than at various times spread out. The goal
-+ * of this is to have the CPU wake up less, which saves power.
-+ *
-+ * The exact rounding is skewed for each processor to avoid all
-+ * processors firing at the exact same time, which could lead
-+ * to lock contention or spurious cache line bouncing.
-+ *
-+ * The return value is the rounded version of the @j parameter.
-+ */
-+unsigned long __round_jiffies_relative(unsigned long j, int cpu)
-+{
-+ /*
-+ * In theory the following code can skip a jiffy in case jiffies
-+ * increments right between the addition and the later subtraction.
-+ * However since the entire point of this function is to use approximate
-+ * timeouts, it's entirely ok to not handle that.
-+ */
-+ return __round_jiffies(j + jiffies, cpu) - jiffies;
-+}
-+EXPORT_SYMBOL_GPL(__round_jiffies_relative);
-+
-+/**
-+ * round_jiffies - function to round jiffies to a full second
-+ * @j: the time in (absolute) jiffies that should be rounded
-+ *
-+ * round_jiffies() rounds an absolute time in the future (in jiffies)
-+ * up or down to (approximately) full seconds. This is useful for timers
-+ * for which the exact time they fire does not matter too much, as long as
-+ * they fire approximately every X seconds.
-+ *
-+ * By rounding these timers to whole seconds, all such timers will fire
-+ * at the same time, rather than at various times spread out. The goal
-+ * of this is to have the CPU wake up less, which saves power.
-+ *
-+ * The return value is the rounded version of the @j parameter.
-+ */
-+unsigned long round_jiffies(unsigned long j)
-+{
-+ return __round_jiffies(j, raw_smp_processor_id());
-+}
-+EXPORT_SYMBOL_GPL(round_jiffies);
-+
-+/**
-+ * round_jiffies_relative - function to round jiffies to a full second
-+ * @j: the time in (relative) jiffies that should be rounded
-+ *
-+ * round_jiffies_relative() rounds a time delta in the future (in jiffies)
-+ * up or down to (approximately) full seconds. This is useful for timers
-+ * for which the exact time they fire does not matter too much, as long as
-+ * they fire approximately every X seconds.
-+ *
-+ * By rounding these timers to whole seconds, all such timers will fire
-+ * at the same time, rather than at various times spread out. The goal
-+ * of this is to have the CPU wake up less, which saves power.
-+ *
-+ * The return value is the rounded version of the @j parameter.
-+ */
-+unsigned long round_jiffies_relative(unsigned long j)
-+{
-+ return __round_jiffies_relative(j, raw_smp_processor_id());
-+}
-+EXPORT_SYMBOL_GPL(round_jiffies_relative);
-+
-+
-+static inline void set_running_timer(tvec_base_t *base,
-+ struct timer_list *timer)
-+{
-+#ifdef CONFIG_SMP
-+ base->running_timer = timer;
-+#endif
-+}
-+
-+static void internal_add_timer(tvec_base_t *base, struct timer_list *timer)
-+{
-+ unsigned long expires = timer->expires;
-+ unsigned long idx = expires - base->timer_jiffies;
-+ struct list_head *vec;
-+
-+ if (idx < TVR_SIZE) {
-+ int i = expires & TVR_MASK;
-+ vec = base->tv1.vec + i;
-+ } else if (idx < 1 << (TVR_BITS + TVN_BITS)) {
-+ int i = (expires >> TVR_BITS) & TVN_MASK;
-+ vec = base->tv2.vec + i;
-+ } else if (idx < 1 << (TVR_BITS + 2 * TVN_BITS)) {
-+ int i = (expires >> (TVR_BITS + TVN_BITS)) & TVN_MASK;
-+ vec = base->tv3.vec + i;
-+ } else if (idx < 1 << (TVR_BITS + 3 * TVN_BITS)) {
-+ int i = (expires >> (TVR_BITS + 2 * TVN_BITS)) & TVN_MASK;
-+ vec = base->tv4.vec + i;
-+ } else if ((signed long) idx < 0) {
-+ /*
-+ * Can happen if you add a timer with expires == jiffies,
-+ * or you set a timer to go off in the past
-+ */
-+ vec = base->tv1.vec + (base->timer_jiffies & TVR_MASK);
-+ } else {
-+ int i;
-+ /* If the timeout is larger than 0xffffffff on 64-bit
-+ * architectures then we use the maximum timeout:
-+ */
-+ if (idx > 0xffffffffUL) {
-+ idx = 0xffffffffUL;
-+ expires = idx + base->timer_jiffies;
-+ }
-+ i = (expires >> (TVR_BITS + 3 * TVN_BITS)) & TVN_MASK;
-+ vec = base->tv5.vec + i;
-+ }
-+ /*
-+ * Timers are FIFO:
-+ */
-+ list_add_tail(&timer->entry, vec);
-+}
-+
-+#ifdef CONFIG_TIMER_STATS
-+void __timer_stats_timer_set_start_info(struct timer_list *timer, void *addr)
-+{
-+ if (timer->start_site)
-+ return;
-+
-+ timer->start_site = addr;
-+ memcpy(timer->start_comm, current->comm, TASK_COMM_LEN);
-+ timer->start_pid = current->pid;
-+}
-+
-+static void timer_stats_account_timer(struct timer_list *timer)
-+{
-+ unsigned int flag = 0;
-+
-+ if (unlikely(tbase_get_deferrable(timer->base)))
-+ flag |= TIMER_STATS_FLAG_DEFERRABLE;
-+
-+ timer_stats_update_stats(timer, timer->start_pid, timer->start_site,
-+ timer->function, timer->start_comm, flag);
-+}
-+
-+#else
-+static void timer_stats_account_timer(struct timer_list *timer) {}
-+#endif
-+
-+/**
-+ * init_timer - initialize a timer.
-+ * @timer: the timer to be initialized
-+ *
-+ * init_timer() must be done to a timer prior calling *any* of the
-+ * other timer functions.
-+ */
-+void fastcall init_timer(struct timer_list *timer)
-+{
-+ timer->entry.next = NULL;
-+ timer->base = __raw_get_cpu_var(tvec_bases);
-+#ifdef CONFIG_TIMER_STATS
-+ timer->start_site = NULL;
-+ timer->start_pid = -1;
-+ memset(timer->start_comm, 0, TASK_COMM_LEN);
-+#endif
-+}
-+EXPORT_SYMBOL(init_timer);
-+
-+void fastcall init_timer_deferrable(struct timer_list *timer)
-+{
-+ init_timer(timer);
-+ timer_set_deferrable(timer);
-+}
-+EXPORT_SYMBOL(init_timer_deferrable);
-+
-+static inline void detach_timer(struct timer_list *timer,
-+ int clear_pending)
-+{
-+ struct list_head *entry = &timer->entry;
-+
-+ __list_del(entry->prev, entry->next);
-+ if (clear_pending)
-+ entry->next = NULL;
-+ entry->prev = LIST_POISON2;
-+}
-+
-+/*
-+ * We are using hashed locking: holding per_cpu(tvec_bases).lock
-+ * means that all timers which are tied to this base via timer->base are
-+ * locked, and the base itself is locked too.
-+ *
-+ * So __run_timers/migrate_timers can safely modify all timers which could
-+ * be found on ->tvX lists.
-+ *
-+ * When the timer's base is locked, and the timer removed from list, it is
-+ * possible to set timer->base = NULL and drop the lock: the timer remains
-+ * locked.
-+ */
-+static tvec_base_t *lock_timer_base(struct timer_list *timer,
-+ unsigned long *flags)
-+ __acquires(timer->base->lock)
-+{
-+ tvec_base_t *base;
-+
-+ for (;;) {
-+ tvec_base_t *prelock_base = timer->base;
-+ base = tbase_get_base(prelock_base);
-+ if (likely(base != NULL)) {
-+ spin_lock_irqsave(&base->lock, *flags);
-+ if (likely(prelock_base == timer->base))
-+ return base;
-+ /* The timer has migrated to another CPU */
-+ spin_unlock_irqrestore(&base->lock, *flags);
-+ }
-+ cpu_relax();
-+ }
-+}
-+
-+int __mod_timer(struct timer_list *timer, unsigned long expires)
-+{
-+ tvec_base_t *base, *new_base;
-+ unsigned long flags;
-+ int ret = 0;
-+
-+ timer_stats_timer_set_start_info(timer);
-+ BUG_ON(!timer->function);
-+
-+ base = lock_timer_base(timer, &flags);
-+
-+ if (timer_pending(timer)) {
-+ detach_timer(timer, 0);
-+ ret = 1;
-+ }
-+
-+ new_base = __get_cpu_var(tvec_bases);
-+
-+ if (base != new_base) {
-+ /*
-+ * We are trying to schedule the timer on the local CPU.
-+ * However we can't change timer's base while it is running,
-+ * otherwise del_timer_sync() can't detect that the timer's
-+ * handler yet has not finished. This also guarantees that
-+ * the timer is serialized wrt itself.
-+ */
-+ if (likely(base->running_timer != timer)) {
-+ /* See the comment in lock_timer_base() */
-+ timer_set_base(timer, NULL);
-+ spin_unlock(&base->lock);
-+ base = new_base;
-+ spin_lock(&base->lock);
-+ timer_set_base(timer, base);
-+ }
-+ }
-+
-+ timer->expires = expires;
-+ internal_add_timer(base, timer);
-+ spin_unlock_irqrestore(&base->lock, flags);
-+
-+ return ret;
-+}
-+
-+EXPORT_SYMBOL(__mod_timer);
-+
-+/**
-+ * add_timer_on - start a timer on a particular CPU
-+ * @timer: the timer to be added
-+ * @cpu: the CPU to start it on
-+ *
-+ * This is not very scalable on SMP. Double adds are not possible.
-+ */
-+void add_timer_on(struct timer_list *timer, int cpu)
-+{
-+ tvec_base_t *base = per_cpu(tvec_bases, cpu);
-+ unsigned long flags;
-+
-+ timer_stats_timer_set_start_info(timer);
-+ BUG_ON(timer_pending(timer) || !timer->function);
-+ spin_lock_irqsave(&base->lock, flags);
-+ timer_set_base(timer, base);
-+ internal_add_timer(base, timer);
-+ /*
-+ * Check whether the other CPU is idle and needs to be
-+ * triggered to reevaluate the timer wheel when nohz is
-+ * active. We are protected against the other CPU fiddling
-+ * with the timer by holding the timer base lock. This also
-+ * makes sure that a CPU on the way to idle can not evaluate
-+ * the timer wheel.
-+ */
-+ wake_up_idle_cpu(cpu);
-+ spin_unlock_irqrestore(&base->lock, flags);
-+}
-+
-+/**
-+ * mod_timer - modify a timer's timeout
-+ * @timer: the timer to be modified
-+ * @expires: new timeout in jiffies
-+ *
-+ * mod_timer() is a more efficient way to update the expire field of an
-+ * active timer (if the timer is inactive it will be activated)
-+ *
-+ * mod_timer(timer, expires) is equivalent to:
-+ *
-+ * del_timer(timer); timer->expires = expires; add_timer(timer);
-+ *
-+ * Note that if there are multiple unserialized concurrent users of the
-+ * same timer, then mod_timer() is the only safe way to modify the timeout,
-+ * since add_timer() cannot modify an already running timer.
-+ *
-+ * The function returns whether it has modified a pending timer or not.
-+ * (ie. mod_timer() of an inactive timer returns 0, mod_timer() of an
-+ * active timer returns 1.)
-+ */
-+int mod_timer(struct timer_list *timer, unsigned long expires)
-+{
-+ BUG_ON(!timer->function);
-+
-+ timer_stats_timer_set_start_info(timer);
-+ /*
-+ * This is a common optimization triggered by the
-+ * networking code - if the timer is re-modified
-+ * to be the same thing then just return:
-+ */
-+ if (timer->expires == expires && timer_pending(timer))
-+ return 1;
-+
-+ return __mod_timer(timer, expires);
-+}
-+
-+EXPORT_SYMBOL(mod_timer);
-+
-+/**
-+ * del_timer - deactive a timer.
-+ * @timer: the timer to be deactivated
-+ *
-+ * del_timer() deactivates a timer - this works on both active and inactive
-+ * timers.
-+ *
-+ * The function returns whether it has deactivated a pending timer or not.
-+ * (ie. del_timer() of an inactive timer returns 0, del_timer() of an
-+ * active timer returns 1.)
-+ */
-+int del_timer(struct timer_list *timer)
-+{
-+ tvec_base_t *base;
-+ unsigned long flags;
-+ int ret = 0;
-+
-+ timer_stats_timer_clear_start_info(timer);
-+ if (timer_pending(timer)) {
-+ base = lock_timer_base(timer, &flags);
-+ if (timer_pending(timer)) {
-+ detach_timer(timer, 1);
-+ ret = 1;
-+ }
-+ spin_unlock_irqrestore(&base->lock, flags);
-+ }
-+
-+ return ret;
-+}
-+
-+EXPORT_SYMBOL(del_timer);
-+
-+#ifdef CONFIG_SMP
-+/**
-+ * try_to_del_timer_sync - Try to deactivate a timer
-+ * @timer: timer do del
-+ *
-+ * This function tries to deactivate a timer. Upon successful (ret >= 0)
-+ * exit the timer is not queued and the handler is not running on any CPU.
-+ *
-+ * It must not be called from interrupt contexts.
-+ */
-+int try_to_del_timer_sync(struct timer_list *timer)
-+{
-+ tvec_base_t *base;
-+ unsigned long flags;
-+ int ret = -1;
-+
-+ base = lock_timer_base(timer, &flags);
-+
-+ if (base->running_timer == timer)
-+ goto out;
-+
-+ ret = 0;
-+ if (timer_pending(timer)) {
-+ detach_timer(timer, 1);
-+ ret = 1;
-+ }
-+out:
-+ spin_unlock_irqrestore(&base->lock, flags);
-+
-+ return ret;
-+}
-+
-+EXPORT_SYMBOL(try_to_del_timer_sync);
-+
-+/**
-+ * del_timer_sync - deactivate a timer and wait for the handler to finish.
-+ * @timer: the timer to be deactivated
-+ *
-+ * This function only differs from del_timer() on SMP: besides deactivating
-+ * the timer it also makes sure the handler has finished executing on other
-+ * CPUs.
-+ *
-+ * Synchronization rules: Callers must prevent restarting of the timer,
-+ * otherwise this function is meaningless. It must not be called from
-+ * interrupt contexts. The caller must not hold locks which would prevent
-+ * completion of the timer's handler. The timer's handler must not call
-+ * add_timer_on(). Upon exit the timer is not queued and the handler is
-+ * not running on any CPU.
-+ *
-+ * The function returns whether it has deactivated a pending timer or not.
-+ */
-+int del_timer_sync(struct timer_list *timer)
-+{
-+ for (;;) {
-+ int ret = try_to_del_timer_sync(timer);
-+ if (ret >= 0)
-+ return ret;
-+ cpu_relax();
-+ }
-+}
-+
-+EXPORT_SYMBOL(del_timer_sync);
-+#endif
-+
-+static int cascade(tvec_base_t *base, tvec_t *tv, int index)
-+{
-+ /* cascade all the timers from tv up one level */
-+ struct timer_list *timer, *tmp;
-+ struct list_head tv_list;
-+
-+ list_replace_init(tv->vec + index, &tv_list);
-+
-+ /*
-+ * We are removing _all_ timers from the list, so we
-+ * don't have to detach them individually.
-+ */
-+ list_for_each_entry_safe(timer, tmp, &tv_list, entry) {
-+ BUG_ON(tbase_get_base(timer->base) != base);
-+ internal_add_timer(base, timer);
-+ }
-+
-+ return index;
-+}
-+
-+#define INDEX(N) ((base->timer_jiffies >> (TVR_BITS + (N) * TVN_BITS)) & TVN_MASK)
-+
-+/**
-+ * __run_timers - run all expired timers (if any) on this CPU.
-+ * @base: the timer vector to be processed.
-+ *
-+ * This function cascades all vectors and executes all expired timer
-+ * vectors.
-+ */
-+static inline void __run_timers(tvec_base_t *base)
-+{
-+ struct timer_list *timer;
-+
-+ spin_lock_irq(&base->lock);
-+ while (time_after_eq(jiffies, base->timer_jiffies)) {
-+ struct list_head work_list;
-+ struct list_head *head = &work_list;
-+ int index = base->timer_jiffies & TVR_MASK;
-+
-+ /*
-+ * Cascade timers:
-+ */
-+ if (!index &&
-+ (!cascade(base, &base->tv2, INDEX(0))) &&
-+ (!cascade(base, &base->tv3, INDEX(1))) &&
-+ !cascade(base, &base->tv4, INDEX(2)))
-+ cascade(base, &base->tv5, INDEX(3));
-+ ++base->timer_jiffies;
-+ list_replace_init(base->tv1.vec + index, &work_list);
-+ while (!list_empty(head)) {
-+ void (*fn)(unsigned long);
-+ unsigned long data;
-+
-+ timer = list_first_entry(head, struct timer_list,entry);
-+ fn = timer->function;
-+ data = timer->data;
-+
-+ timer_stats_account_timer(timer);
-+
-+ set_running_timer(base, timer);
-+ detach_timer(timer, 1);
-+ spin_unlock_irq(&base->lock);
-+ {
-+ int preempt_count = preempt_count();
-+ fn(data);
-+ if (preempt_count != preempt_count()) {
-+ printk(KERN_WARNING "huh, entered %p "
-+ "with preempt_count %08x, exited"
-+ " with %08x?\n",
-+ fn, preempt_count,
-+ preempt_count());
-+ BUG();
-+ }
-+ }
-+ spin_lock_irq(&base->lock);
-+ }
-+ }
-+ set_running_timer(base, NULL);
-+ spin_unlock_irq(&base->lock);
-+}
-+
-+#if defined(CONFIG_NO_IDLE_HZ) || defined(CONFIG_NO_HZ)
-+/*
-+ * Find out when the next timer event is due to happen. This
-+ * is used on S/390 to stop all activity when a cpus is idle.
-+ * This functions needs to be called disabled.
-+ */
-+static unsigned long __next_timer_interrupt(tvec_base_t *base)
-+{
-+ unsigned long timer_jiffies = base->timer_jiffies;
-+ unsigned long expires = timer_jiffies + NEXT_TIMER_MAX_DELTA;
-+ int index, slot, array, found = 0;
-+ struct timer_list *nte;
-+ tvec_t *varray[4];
-+
-+ /* Look for timer events in tv1. */
-+ index = slot = timer_jiffies & TVR_MASK;
-+ do {
-+ list_for_each_entry(nte, base->tv1.vec + slot, entry) {
-+ if (tbase_get_deferrable(nte->base))
-+ continue;
-+
-+ found = 1;
-+ expires = nte->expires;
-+ /* Look at the cascade bucket(s)? */
-+ if (!index || slot < index)
-+ goto cascade;
-+ return expires;
-+ }
-+ slot = (slot + 1) & TVR_MASK;
-+ } while (slot != index);
-+
-+cascade:
-+ /* Calculate the next cascade event */
-+ if (index)
-+ timer_jiffies += TVR_SIZE - index;
-+ timer_jiffies >>= TVR_BITS;
-+
-+ /* Check tv2-tv5. */
-+ varray[0] = &base->tv2;
-+ varray[1] = &base->tv3;
-+ varray[2] = &base->tv4;
-+ varray[3] = &base->tv5;
-+
-+ for (array = 0; array < 4; array++) {
-+ tvec_t *varp = varray[array];
-+
-+ index = slot = timer_jiffies & TVN_MASK;
-+ do {
-+ list_for_each_entry(nte, varp->vec + slot, entry) {
-+ found = 1;
-+ if (time_before(nte->expires, expires))
-+ expires = nte->expires;
-+ }
-+ /*
-+ * Do we still search for the first timer or are
-+ * we looking up the cascade buckets ?
-+ */
-+ if (found) {
-+ /* Look at the cascade bucket(s)? */
-+ if (!index || slot < index)
-+ break;
-+ return expires;
-+ }
-+ slot = (slot + 1) & TVN_MASK;
-+ } while (slot != index);
-+
-+ if (index)
-+ timer_jiffies += TVN_SIZE - index;
-+ timer_jiffies >>= TVN_BITS;
-+ }
-+ return expires;
-+}
-+
-+/*
-+ * Check, if the next hrtimer event is before the next timer wheel
-+ * event:
-+ */
-+static unsigned long cmp_next_hrtimer_event(unsigned long now,
-+ unsigned long expires)
-+{
-+ ktime_t hr_delta = hrtimer_get_next_event();
-+ struct timespec tsdelta;
-+ unsigned long delta;
-+
-+ if (hr_delta.tv64 == KTIME_MAX)
-+ return expires;
-+
-+ /*
-+ * Expired timer available, let it expire in the next tick
-+ */
-+ if (hr_delta.tv64 <= 0)
-+ return now + 1;
-+
-+ tsdelta = ktime_to_timespec(hr_delta);
-+ delta = timespec_to_jiffies(&tsdelta);
-+
-+ /*
-+ * Limit the delta to the max value, which is checked in
-+ * tick_nohz_stop_sched_tick():
-+ */
-+ if (delta > NEXT_TIMER_MAX_DELTA)
-+ delta = NEXT_TIMER_MAX_DELTA;
-+
-+ /*
-+ * Take rounding errors in to account and make sure, that it
-+ * expires in the next tick. Otherwise we go into an endless
-+ * ping pong due to tick_nohz_stop_sched_tick() retriggering
-+ * the timer softirq
-+ */
-+ if (delta < 1)
-+ delta = 1;
-+ now += delta;
-+ if (time_before(now, expires))
-+ return now;
-+ return expires;
-+}
-+
-+/**
-+ * get_next_timer_interrupt - return the jiffy of the next pending timer
-+ * @now: current time (in jiffies)
-+ */
-+unsigned long get_next_timer_interrupt(unsigned long now)
-+{
-+ tvec_base_t *base = __get_cpu_var(tvec_bases);
-+ unsigned long expires;
-+
-+ spin_lock(&base->lock);
-+ expires = __next_timer_interrupt(base);
-+ spin_unlock(&base->lock);
-+
-+ if (time_before_eq(expires, now))
-+ return now;
-+
-+ return cmp_next_hrtimer_event(now, expires);
-+}
-+
-+#ifdef CONFIG_NO_IDLE_HZ
-+unsigned long next_timer_interrupt(void)
-+{
-+ return get_next_timer_interrupt(jiffies);
-+}
-+#endif
-+
-+#endif
-+
-+#ifndef CONFIG_VIRT_CPU_ACCOUNTING
-+void account_process_tick(struct task_struct *p, int user_tick)
-+{
-+ if (user_tick) {
-+ account_user_time(p, jiffies_to_cputime(1));
-+ account_user_time_scaled(p, jiffies_to_cputime(1));
-+ } else {
-+ account_system_time(p, HARDIRQ_OFFSET, jiffies_to_cputime(1));
-+ account_system_time_scaled(p, jiffies_to_cputime(1));
-+ }
-+}
-+#endif
-+
-+/*
-+ * Called from the timer interrupt handler to charge one tick to the current
-+ * process. user_tick is 1 if the tick is user time, 0 for system.
-+ */
-+void update_process_times(int user_tick)
-+{
-+ struct task_struct *p = current;
-+ int cpu = smp_processor_id();
-+
-+ /* Note: this timer irq context must be accounted for as well. */
-+ account_process_tick(p, user_tick);
-+ run_local_timers();
-+ if (rcu_pending(cpu))
-+ rcu_check_callbacks(cpu, user_tick);
-+ scheduler_tick();
-+ run_posix_cpu_timers(p);
-+}
-+
-+/*
-+ * Nr of active tasks - counted in fixed-point numbers
-+ */
-+static unsigned long count_active_tasks(void)
-+{
-+ return nr_active() * FIXED_1;
-+}
-+
-+/*
-+ * Hmm.. Changed this, as the GNU make sources (load.c) seems to
-+ * imply that avenrun[] is the standard name for this kind of thing.
-+ * Nothing else seems to be standardized: the fractional size etc
-+ * all seem to differ on different machines.
-+ *
-+ * Requires xtime_lock to access.
-+ */
-+unsigned long avenrun[3];
-+
-+EXPORT_SYMBOL(avenrun);
-+
-+/*
-+ * calc_load - given tick count, update the avenrun load estimates.
-+ * This is called while holding a write_lock on xtime_lock.
-+ */
-+static inline void calc_load(unsigned long ticks)
-+{
-+ unsigned long active_tasks; /* fixed-point */
-+ static int count = LOAD_FREQ;
-+
-+ count -= ticks;
-+ if (unlikely(count < 0)) {
-+ active_tasks = count_active_tasks();
-+ do {
-+ CALC_LOAD(avenrun[0], EXP_1, active_tasks);
-+ CALC_LOAD(avenrun[1], EXP_5, active_tasks);
-+ CALC_LOAD(avenrun[2], EXP_15, active_tasks);
-+ count += LOAD_FREQ;
-+ } while (count < 0);
-+ }
-+}
-+
-+/*
-+ * This function runs timers and the timer-tq in bottom half context.
-+ */
-+static void run_timer_softirq(struct softirq_action *h)
-+{
-+ tvec_base_t *base = __get_cpu_var(tvec_bases);
-+
-+ hrtimer_run_queues();
-+
-+ if (time_after_eq(jiffies, base->timer_jiffies))
-+ __run_timers(base);
-+}
-+
-+/*
-+ * Called by the local, per-CPU timer interrupt on SMP.
-+ */
-+void run_local_timers(void)
-+{
-+ raise_softirq(TIMER_SOFTIRQ);
-+ softlockup_tick();
-+}
-+
-+/*
-+ * Called by the timer interrupt. xtime_lock must already be taken
-+ * by the timer IRQ!
-+ */
-+static inline void update_times(unsigned long ticks)
-+{
-+ update_wall_time();
-+ calc_load(ticks);
-+}
-+
-+/*
-+ * The 64-bit jiffies value is not atomic - you MUST NOT read it
-+ * without sampling the sequence number in xtime_lock.
-+ * jiffies is defined in the linker script...
-+ */
-+
-+void do_timer(unsigned long ticks)
-+{
-+ jiffies_64 += ticks;
-+ update_times(ticks);
-+}
-+
-+#ifdef __ARCH_WANT_SYS_ALARM
-+
-+/*
-+ * For backwards compatibility? This can be done in libc so Alpha
-+ * and all newer ports shouldn't need it.
-+ */
-+SYSCALL_DEFINE1(alarm, unsigned int, seconds)
-+{
-+ return alarm_setitimer(seconds);
-+}
-+
-+#endif
-+
-+#ifndef __alpha__
-+
-+/*
-+ * The Alpha uses getxpid, getxuid, and getxgid instead. Maybe this
-+ * should be moved into arch/i386 instead?
-+ */
-+
-+/**
-+ * sys_getpid - return the thread group id of the current process
-+ *
-+ * Note, despite the name, this returns the tgid not the pid. The tgid and
-+ * the pid are identical unless CLONE_THREAD was specified on clone() in
-+ * which case the tgid is the same in all threads of the same group.
-+ *
-+ * This is SMP safe as current->tgid does not change.
-+ */
-+SYSCALL_DEFINE0(getpid)
-+{
-+ return task_tgid_vnr(current);
-+}
-+
-+/*
-+ * Accessing ->real_parent is not SMP-safe, it could
-+ * change from under us. However, we can use a stale
-+ * value of ->real_parent under rcu_read_lock(), see
-+ * release_task()->call_rcu(delayed_put_task_struct).
-+ */
-+asmlinkage long sys_getppid(void)
-+{
-+ int pid;
-+
-+ rcu_read_lock();
-+ pid = task_tgid_nr_ns(current->real_parent, current->nsproxy->pid_ns);
-+ rcu_read_unlock();
-+
-+ return pid;
-+}
-+
-+asmlinkage long sys_getuid(void)
-+{
-+ /* Only we change this so SMP safe */
-+ return current->uid;
-+}
-+
-+asmlinkage long sys_geteuid(void)
-+{
-+ /* Only we change this so SMP safe */
-+ return current->euid;
-+}
-+
-+asmlinkage long sys_getgid(void)
-+{
-+ /* Only we change this so SMP safe */
-+ return current->gid;
-+}
-+
-+asmlinkage long sys_getegid(void)
-+{
-+ /* Only we change this so SMP safe */
-+ return current->egid;
-+}
-+
-+#endif
-+
-+static void process_timeout(unsigned long __data)
-+{
-+ wake_up_process((struct task_struct *)__data);
-+}
-+
-+/**
-+ * schedule_timeout - sleep until timeout
-+ * @timeout: timeout value in jiffies
-+ *
-+ * Make the current task sleep until @timeout jiffies have
-+ * elapsed. The routine will return immediately unless
-+ * the current task state has been set (see set_current_state()).
-+ *
-+ * You can set the task state as follows -
-+ *
-+ * %TASK_UNINTERRUPTIBLE - at least @timeout jiffies are guaranteed to
-+ * pass before the routine returns. The routine will return 0
-+ *
-+ * %TASK_INTERRUPTIBLE - the routine may return early if a signal is
-+ * delivered to the current task. In this case the remaining time
-+ * in jiffies will be returned, or 0 if the timer expired in time
-+ *
-+ * The current task state is guaranteed to be TASK_RUNNING when this
-+ * routine returns.
-+ *
-+ * Specifying a @timeout value of %MAX_SCHEDULE_TIMEOUT will schedule
-+ * the CPU away without a bound on the timeout. In this case the return
-+ * value will be %MAX_SCHEDULE_TIMEOUT.
-+ *
-+ * In all cases the return value is guaranteed to be non-negative.
-+ */
-+fastcall signed long __sched schedule_timeout(signed long timeout)
-+{
-+ struct timer_list timer;
-+ unsigned long expire;
-+
-+ switch (timeout)
-+ {
-+ case MAX_SCHEDULE_TIMEOUT:
-+ /*
-+ * These two special cases are useful to be comfortable
-+ * in the caller. Nothing more. We could take
-+ * MAX_SCHEDULE_TIMEOUT from one of the negative value
-+ * but I' d like to return a valid offset (>=0) to allow
-+ * the caller to do everything it want with the retval.
-+ */
-+ schedule();
-+ goto out;
-+ default:
-+ /*
-+ * Another bit of PARANOID. Note that the retval will be
-+ * 0 since no piece of kernel is supposed to do a check
-+ * for a negative retval of schedule_timeout() (since it
-+ * should never happens anyway). You just have the printk()
-+ * that will tell you if something is gone wrong and where.
-+ */
-+ if (timeout < 0) {
-+ printk(KERN_ERR "schedule_timeout: wrong timeout "
-+ "value %lx\n", timeout);
-+ dump_stack();
-+ current->state = TASK_RUNNING;
-+ goto out;
-+ }
-+ }
-+
-+ expire = timeout + jiffies;
-+
-+ setup_timer(&timer, process_timeout, (unsigned long)current);
-+ __mod_timer(&timer, expire);
-+ schedule();
-+ del_singleshot_timer_sync(&timer);
-+
-+ timeout = expire - jiffies;
-+
-+ out:
-+ return timeout < 0 ? 0 : timeout;
-+}
-+EXPORT_SYMBOL(schedule_timeout);
-+
-+/*
-+ * We can use __set_current_state() here because schedule_timeout() calls
-+ * schedule() unconditionally.
-+ */
-+signed long __sched schedule_timeout_interruptible(signed long timeout)
-+{
-+ __set_current_state(TASK_INTERRUPTIBLE);
-+ return schedule_timeout(timeout);
-+}
-+EXPORT_SYMBOL(schedule_timeout_interruptible);
-+
-+signed long __sched schedule_timeout_uninterruptible(signed long timeout)
-+{
-+ __set_current_state(TASK_UNINTERRUPTIBLE);
-+ return schedule_timeout(timeout);
-+}
-+EXPORT_SYMBOL(schedule_timeout_uninterruptible);
-+
-+/* Thread ID - the internal kernel "pid" */
-+SYSCALL_DEFINE0(gettid)
-+{
-+ return task_pid_vnr(current);
-+}
-+
-+/**
-+ * do_sysinfo - fill in sysinfo struct
-+ * @info: pointer to buffer to fill
-+ */
-+int do_sysinfo(struct sysinfo *info)
-+{
-+ unsigned long mem_total, sav_total;
-+ unsigned int mem_unit, bitcount;
-+ unsigned long seq;
-+
-+ memset(info, 0, sizeof(struct sysinfo));
-+
-+ do {
-+ struct timespec tp;
-+ seq = read_seqbegin(&xtime_lock);
-+
-+ /*
-+ * This is annoying. The below is the same thing
-+ * posix_get_clock_monotonic() does, but it wants to
-+ * take the lock which we want to cover the loads stuff
-+ * too.
-+ */
-+
-+ getnstimeofday(&tp);
-+ tp.tv_sec += wall_to_monotonic.tv_sec;
-+ tp.tv_nsec += wall_to_monotonic.tv_nsec;
-+ monotonic_to_bootbased(&tp);
-+ if (tp.tv_nsec - NSEC_PER_SEC >= 0) {
-+ tp.tv_nsec = tp.tv_nsec - NSEC_PER_SEC;
-+ tp.tv_sec++;
-+ }
-+ info->uptime = tp.tv_sec + (tp.tv_nsec ? 1 : 0);
-+
-+ info->loads[0] = avenrun[0] << (SI_LOAD_SHIFT - FSHIFT);
-+ info->loads[1] = avenrun[1] << (SI_LOAD_SHIFT - FSHIFT);
-+ info->loads[2] = avenrun[2] << (SI_LOAD_SHIFT - FSHIFT);
-+
-+ info->procs = nr_threads;
-+ } while (read_seqretry(&xtime_lock, seq));
-+
-+ si_meminfo(info);
-+ si_swapinfo(info);
-+
-+ /*
-+ * If the sum of all the available memory (i.e. ram + swap)
-+ * is less than can be stored in a 32 bit unsigned long then
-+ * we can be binary compatible with 2.2.x kernels. If not,
-+ * well, in that case 2.2.x was broken anyways...
-+ *
-+ * -Erik Andersen <andersee at debian.org>
-+ */
-+
-+ mem_total = info->totalram + info->totalswap;
-+ if (mem_total < info->totalram || mem_total < info->totalswap)
-+ goto out;
-+ bitcount = 0;
-+ mem_unit = info->mem_unit;
-+ while (mem_unit > 1) {
-+ bitcount++;
-+ mem_unit >>= 1;
-+ sav_total = mem_total;
-+ mem_total <<= 1;
-+ if (mem_total < sav_total)
-+ goto out;
-+ }
-+
-+ /*
-+ * If mem_total did not overflow, multiply all memory values by
-+ * info->mem_unit and set it to 1. This leaves things compatible
-+ * with 2.2.x, and also retains compatibility with earlier 2.4.x
-+ * kernels...
-+ */
-+
-+ info->mem_unit = 1;
-+ info->totalram <<= bitcount;
-+ info->freeram <<= bitcount;
-+ info->sharedram <<= bitcount;
-+ info->bufferram <<= bitcount;
-+ info->totalswap <<= bitcount;
-+ info->freeswap <<= bitcount;
-+ info->totalhigh <<= bitcount;
-+ info->freehigh <<= bitcount;
-+
-+out:
-+ return 0;
-+}
-+
-+asmlinkage long sys_sysinfo(struct sysinfo __user *info)
-+{
-+ struct sysinfo val;
-+
-+ do_sysinfo(&val);
-+
-+ if (copy_to_user(info, &val, sizeof(struct sysinfo)))
-+ return -EFAULT;
-+
-+ return 0;
-+}
-+
-+/*
-+ * lockdep: we want to track each per-CPU base as a separate lock-class,
-+ * but timer-bases are kmalloc()-ed, so we need to attach separate
-+ * keys to them:
-+ */
-+static struct lock_class_key base_lock_keys[NR_CPUS];
-+
-+static int __cpuinit init_timers_cpu(int cpu)
-+{
-+ int j;
-+ tvec_base_t *base;
-+ static char __cpuinitdata tvec_base_done[NR_CPUS];
-+
-+ if (!tvec_base_done[cpu]) {
-+ static char boot_done;
-+
-+ if (boot_done) {
-+ /*
-+ * The APs use this path later in boot
-+ */
-+ base = kmalloc_node(sizeof(*base),
-+ GFP_KERNEL | __GFP_ZERO,
-+ cpu_to_node(cpu));
-+ if (!base)
-+ return -ENOMEM;
-+
-+ /* Make sure that tvec_base is 2 byte aligned */
-+ if (tbase_get_deferrable(base)) {
-+ WARN_ON(1);
-+ kfree(base);
-+ return -ENOMEM;
-+ }
-+ per_cpu(tvec_bases, cpu) = base;
-+ } else {
-+ /*
-+ * This is for the boot CPU - we use compile-time
-+ * static initialisation because per-cpu memory isn't
-+ * ready yet and because the memory allocators are not
-+ * initialised either.
-+ */
-+ boot_done = 1;
-+ base = &boot_tvec_bases;
-+ }
-+ tvec_base_done[cpu] = 1;
-+ } else {
-+ base = per_cpu(tvec_bases, cpu);
-+ }
-+
-+ spin_lock_init(&base->lock);
-+ lockdep_set_class(&base->lock, base_lock_keys + cpu);
-+
-+ for (j = 0; j < TVN_SIZE; j++) {
-+ INIT_LIST_HEAD(base->tv5.vec + j);
-+ INIT_LIST_HEAD(base->tv4.vec + j);
-+ INIT_LIST_HEAD(base->tv3.vec + j);
-+ INIT_LIST_HEAD(base->tv2.vec + j);
-+ }
-+ for (j = 0; j < TVR_SIZE; j++)
-+ INIT_LIST_HEAD(base->tv1.vec + j);
-+
-+ base->timer_jiffies = jiffies;
-+ return 0;
-+}
-+
-+#ifdef CONFIG_HOTPLUG_CPU
-+static void migrate_timer_list(tvec_base_t *new_base, struct list_head *head)
-+{
-+ struct timer_list *timer;
-+
-+ while (!list_empty(head)) {
-+ timer = list_first_entry(head, struct timer_list, entry);
-+ detach_timer(timer, 0);
-+ timer_set_base(timer, new_base);
-+ internal_add_timer(new_base, timer);
-+ }
-+}
-+
-+static void __cpuinit migrate_timers(int cpu)
-+{
-+ tvec_base_t *old_base;
-+ tvec_base_t *new_base;
-+ int i;
-+
-+ BUG_ON(cpu_online(cpu));
-+ old_base = per_cpu(tvec_bases, cpu);
-+ new_base = get_cpu_var(tvec_bases);
-+
-+ local_irq_disable();
-+ double_spin_lock(&new_base->lock, &old_base->lock,
-+ smp_processor_id() < cpu);
-+
-+ BUG_ON(old_base->running_timer);
-+
-+ for (i = 0; i < TVR_SIZE; i++)
-+ migrate_timer_list(new_base, old_base->tv1.vec + i);
-+ for (i = 0; i < TVN_SIZE; i++) {
-+ migrate_timer_list(new_base, old_base->tv2.vec + i);
-+ migrate_timer_list(new_base, old_base->tv3.vec + i);
-+ migrate_timer_list(new_base, old_base->tv4.vec + i);
-+ migrate_timer_list(new_base, old_base->tv5.vec + i);
-+ }
-+
-+ double_spin_unlock(&new_base->lock, &old_base->lock,
-+ smp_processor_id() < cpu);
-+ local_irq_enable();
-+ put_cpu_var(tvec_bases);
-+}
-+#endif /* CONFIG_HOTPLUG_CPU */
-+
-+static int __cpuinit timer_cpu_notify(struct notifier_block *self,
-+ unsigned long action, void *hcpu)
-+{
-+ long cpu = (long)hcpu;
-+ switch(action) {
-+ case CPU_UP_PREPARE:
-+ case CPU_UP_PREPARE_FROZEN:
-+ if (init_timers_cpu(cpu) < 0)
-+ return NOTIFY_BAD;
-+ break;
-+#ifdef CONFIG_HOTPLUG_CPU
-+ case CPU_DEAD:
-+ case CPU_DEAD_FROZEN:
-+ migrate_timers(cpu);
-+ break;
-+#endif
-+ default:
-+ break;
-+ }
-+ return NOTIFY_OK;
-+}
-+
-+static struct notifier_block __cpuinitdata timers_nb = {
-+ .notifier_call = timer_cpu_notify,
-+};
-+
-+
-+void __init init_timers(void)
-+{
-+ int err = timer_cpu_notify(&timers_nb, (unsigned long)CPU_UP_PREPARE,
-+ (void *)(long)smp_processor_id());
-+
-+ init_timer_stats();
-+
-+ BUG_ON(err == NOTIFY_BAD);
-+ register_cpu_notifier(&timers_nb);
-+ open_softirq(TIMER_SOFTIRQ, run_timer_softirq, NULL);
-+}
-+
-+/**
-+ * msleep - sleep safely even with waitqueue interruptions
-+ * @msecs: Time in milliseconds to sleep for
-+ */
-+void msleep(unsigned int msecs)
-+{
-+ unsigned long timeout = msecs_to_jiffies(msecs) + 1;
-+
-+ while (timeout)
-+ timeout = schedule_timeout_uninterruptible(timeout);
-+}
-+
-+EXPORT_SYMBOL(msleep);
-+
-+/**
-+ * msleep_interruptible - sleep waiting for signals
-+ * @msecs: Time in milliseconds to sleep for
-+ */
-+unsigned long msleep_interruptible(unsigned int msecs)
-+{
-+ unsigned long timeout = msecs_to_jiffies(msecs) + 1;
-+
-+ while (timeout && !signal_pending(current))
-+ timeout = schedule_timeout_interruptible(timeout);
-+ return jiffies_to_msecs(timeout);
-+}
-+
-+EXPORT_SYMBOL(msleep_interruptible);
Modified: dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0013-System-call-wrappers-part-03.patch
==============================================================================
--- /dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/0013-System-call-wrappers-part-03.patch (original)
+++ dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0013-System-call-wrappers-part-03.patch Mon Feb 9 15:47:53 2009
@@ -10,12 +10,12 @@
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.24 by dann frazier <dannf at debian.org>
+Adjusted to apply to Debian's 2.6.18 by dann frazier <dannf at debian.org>
-diff -urpN linux-source-2.6.24.orig/kernel/sys.c linux-source-2.6.24/kernel/sys.c
---- linux-source-2.6.24.orig/kernel/sys.c 2009-01-21 00:56:20.000000000 -0700
-+++ linux-source-2.6.24/kernel/sys.c 2009-01-21 00:57:05.000000000 -0700
-@@ -479,7 +479,7 @@ void ctrl_alt_del(void)
+diff -urpN linux-source-2.6.18.orig/kernel/sys.c linux-source-2.6.18/kernel/sys.c
+--- linux-source-2.6.18.orig/kernel/sys.c 2009-01-25 20:34:36.000000000 -0700
++++ linux-source-2.6.18/kernel/sys.c 2009-01-25 20:35:12.000000000 -0700
+@@ -797,7 +797,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).
*/
@@ -24,7 +24,7 @@
{
int old_rgid = current->gid;
int old_egid = current->egid;
-@@ -528,7 +528,7 @@ asmlinkage long sys_setregid(gid_t rgid,
+@@ -848,7 +848,7 @@ asmlinkage long sys_setregid(gid_t rgid,
*
* SMP: Same implicit races as above.
*/
@@ -33,7 +33,7 @@
{
int old_egid = current->egid;
int retval;
-@@ -598,7 +598,7 @@ static int set_user(uid_t new_ruid, int
+@@ -924,7 +924,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.
*/
@@ -42,7 +42,7 @@
{
int old_ruid, old_euid, old_suid, new_ruid, new_euid;
int retval;
-@@ -660,7 +660,7 @@ asmlinkage long sys_setreuid(uid_t ruid,
+@@ -987,7 +987,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.
*/
@@ -50,8 +50,8 @@
+SYSCALL_DEFINE1(setuid, uid_t, uid)
{
int old_euid = current->euid;
- int old_ruid, old_suid, new_suid;
-@@ -699,7 +699,7 @@ asmlinkage long sys_setuid(uid_t uid)
+ int old_ruid, old_suid, new_ruid, new_suid;
+@@ -1027,7 +1027,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().
*/
@@ -60,7 +60,7 @@
{
int old_ruid = current->uid;
int old_euid = current->euid;
-@@ -756,7 +756,7 @@ SYSCALL_DEFINE3(getresuid, uid_t __user
+@@ -1085,7 +1085,7 @@ SYSCALL_DEFINE3(getresuid, uid_t __user
/*
* Same as above, but for rgid, egid, sgid.
*/
@@ -69,7 +69,7 @@
{
int retval;
-@@ -811,7 +811,7 @@ SYSCALL_DEFINE3(getresgid, gid_t __user
+@@ -1141,7 +1141,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..
*/
@@ -78,16 +78,16 @@
{
int old_fsuid;
-@@ -840,7 +840,7 @@ asmlinkage long sys_setfsuid(uid_t uid)
+@@ -1172,7 +1172,7 @@ asmlinkage long sys_setfsuid(uid_t uid)
/*
- * Samma på svenska..
+ * Samma på svenska..
*/
-asmlinkage long sys_setfsgid(gid_t gid)
+SYSCALL_DEFINE1(setfsgid, gid_t, gid)
{
int old_fsgid;
-@@ -1257,7 +1257,7 @@ int set_current_groups(struct group_info
+@@ -1583,7 +1583,7 @@ int set_current_groups(struct group_info
EXPORT_SYMBOL(set_current_groups);
@@ -96,1405 +96,3 @@
{
int i = 0;
-diff -urpN linux-source-2.6.24.orig/kernel/timer.c.orig linux-source-2.6.24/kernel/timer.c.orig
---- linux-source-2.6.24.orig/kernel/timer.c.orig 2009-01-21 00:54:00.000000000 -0700
-+++ linux-source-2.6.24/kernel/timer.c.orig 1969-12-31 17:00:00.000000000 -0700
-@@ -1,1398 +0,0 @@
--/*
-- * linux/kernel/timer.c
-- *
-- * Kernel internal timers, basic process system calls
-- *
-- * Copyright (C) 1991, 1992 Linus Torvalds
-- *
-- * 1997-01-28 Modified by Finn Arne Gangstad to make timers scale better.
-- *
-- * 1997-09-10 Updated NTP code according to technical memorandum Jan '96
-- * "A Kernel Model for Precision Timekeeping" by Dave Mills
-- * 1998-12-24 Fixed a xtime SMP race (we need the xtime_lock rw spinlock to
-- * serialize accesses to xtime/lost_ticks).
-- * Copyright (C) 1998 Andrea Arcangeli
-- * 1999-03-10 Improved NTP compatibility by Ulrich Windl
-- * 2002-05-31 Move sys_sysinfo here and make its locking sane, Robert Love
-- * 2000-10-05 Implemented scalable SMP per-CPU timer handling.
-- * Copyright (C) 2000, 2001, 2002 Ingo Molnar
-- * Designed by David S. Miller, Alexey Kuznetsov and Ingo Molnar
-- */
--
--#include <linux/kernel_stat.h>
--#include <linux/module.h>
--#include <linux/interrupt.h>
--#include <linux/percpu.h>
--#include <linux/init.h>
--#include <linux/mm.h>
--#include <linux/swap.h>
--#include <linux/pid_namespace.h>
--#include <linux/notifier.h>
--#include <linux/thread_info.h>
--#include <linux/time.h>
--#include <linux/jiffies.h>
--#include <linux/posix-timers.h>
--#include <linux/cpu.h>
--#include <linux/syscalls.h>
--#include <linux/delay.h>
--#include <linux/tick.h>
--#include <linux/kallsyms.h>
--
--#include <asm/uaccess.h>
--#include <asm/unistd.h>
--#include <asm/div64.h>
--#include <asm/timex.h>
--#include <asm/io.h>
--
--u64 jiffies_64 __cacheline_aligned_in_smp = INITIAL_JIFFIES;
--
--EXPORT_SYMBOL(jiffies_64);
--
--/*
-- * per-CPU timer vector definitions:
-- */
--#define TVN_BITS (CONFIG_BASE_SMALL ? 4 : 6)
--#define TVR_BITS (CONFIG_BASE_SMALL ? 6 : 8)
--#define TVN_SIZE (1 << TVN_BITS)
--#define TVR_SIZE (1 << TVR_BITS)
--#define TVN_MASK (TVN_SIZE - 1)
--#define TVR_MASK (TVR_SIZE - 1)
--
--typedef struct tvec_s {
-- struct list_head vec[TVN_SIZE];
--} tvec_t;
--
--typedef struct tvec_root_s {
-- struct list_head vec[TVR_SIZE];
--} tvec_root_t;
--
--struct tvec_t_base_s {
-- spinlock_t lock;
-- struct timer_list *running_timer;
-- unsigned long timer_jiffies;
-- tvec_root_t tv1;
-- tvec_t tv2;
-- tvec_t tv3;
-- tvec_t tv4;
-- tvec_t tv5;
--} ____cacheline_aligned;
--
--typedef struct tvec_t_base_s tvec_base_t;
--
--tvec_base_t boot_tvec_bases;
--EXPORT_SYMBOL(boot_tvec_bases);
--static DEFINE_PER_CPU(tvec_base_t *, tvec_bases) = &boot_tvec_bases;
--
--/*
-- * Note that all tvec_bases is 2 byte aligned and lower bit of
-- * base in timer_list is guaranteed to be zero. Use the LSB for
-- * the new flag to indicate whether the timer is deferrable
-- */
--#define TBASE_DEFERRABLE_FLAG (0x1)
--
--/* Functions below help us manage 'deferrable' flag */
--static inline unsigned int tbase_get_deferrable(tvec_base_t *base)
--{
-- return ((unsigned int)(unsigned long)base & TBASE_DEFERRABLE_FLAG);
--}
--
--static inline tvec_base_t *tbase_get_base(tvec_base_t *base)
--{
-- return ((tvec_base_t *)((unsigned long)base & ~TBASE_DEFERRABLE_FLAG));
--}
--
--static inline void timer_set_deferrable(struct timer_list *timer)
--{
-- timer->base = ((tvec_base_t *)((unsigned long)(timer->base) |
-- TBASE_DEFERRABLE_FLAG));
--}
--
--static inline void
--timer_set_base(struct timer_list *timer, tvec_base_t *new_base)
--{
-- timer->base = (tvec_base_t *)((unsigned long)(new_base) |
-- tbase_get_deferrable(timer->base));
--}
--
--/**
-- * __round_jiffies - function to round jiffies to a full second
-- * @j: the time in (absolute) jiffies that should be rounded
-- * @cpu: the processor number on which the timeout will happen
-- *
-- * __round_jiffies() rounds an absolute time in the future (in jiffies)
-- * up or down to (approximately) full seconds. This is useful for timers
-- * for which the exact time they fire does not matter too much, as long as
-- * they fire approximately every X seconds.
-- *
-- * By rounding these timers to whole seconds, all such timers will fire
-- * at the same time, rather than at various times spread out. The goal
-- * of this is to have the CPU wake up less, which saves power.
-- *
-- * The exact rounding is skewed for each processor to avoid all
-- * processors firing at the exact same time, which could lead
-- * to lock contention or spurious cache line bouncing.
-- *
-- * The return value is the rounded version of the @j parameter.
-- */
--unsigned long __round_jiffies(unsigned long j, int cpu)
--{
-- int rem;
-- unsigned long original = j;
--
-- /*
-- * We don't want all cpus firing their timers at once hitting the
-- * same lock or cachelines, so we skew each extra cpu with an extra
-- * 3 jiffies. This 3 jiffies came originally from the mm/ code which
-- * already did this.
-- * The skew is done by adding 3*cpunr, then round, then subtract this
-- * extra offset again.
-- */
-- j += cpu * 3;
--
-- rem = j % HZ;
--
-- /*
-- * If the target jiffie is just after a whole second (which can happen
-- * due to delays of the timer irq, long irq off times etc etc) then
-- * we should round down to the whole second, not up. Use 1/4th second
-- * as cutoff for this rounding as an extreme upper bound for this.
-- */
-- if (rem < HZ/4) /* round down */
-- j = j - rem;
-- else /* round up */
-- j = j - rem + HZ;
--
-- /* now that we have rounded, subtract the extra skew again */
-- j -= cpu * 3;
--
-- if (j <= jiffies) /* rounding ate our timeout entirely; */
-- return original;
-- return j;
--}
--EXPORT_SYMBOL_GPL(__round_jiffies);
--
--/**
-- * __round_jiffies_relative - function to round jiffies to a full second
-- * @j: the time in (relative) jiffies that should be rounded
-- * @cpu: the processor number on which the timeout will happen
-- *
-- * __round_jiffies_relative() rounds a time delta in the future (in jiffies)
-- * up or down to (approximately) full seconds. This is useful for timers
-- * for which the exact time they fire does not matter too much, as long as
-- * they fire approximately every X seconds.
-- *
-- * By rounding these timers to whole seconds, all such timers will fire
-- * at the same time, rather than at various times spread out. The goal
-- * of this is to have the CPU wake up less, which saves power.
-- *
-- * The exact rounding is skewed for each processor to avoid all
-- * processors firing at the exact same time, which could lead
-- * to lock contention or spurious cache line bouncing.
-- *
-- * The return value is the rounded version of the @j parameter.
-- */
--unsigned long __round_jiffies_relative(unsigned long j, int cpu)
--{
-- /*
-- * In theory the following code can skip a jiffy in case jiffies
-- * increments right between the addition and the later subtraction.
-- * However since the entire point of this function is to use approximate
-- * timeouts, it's entirely ok to not handle that.
-- */
-- return __round_jiffies(j + jiffies, cpu) - jiffies;
--}
--EXPORT_SYMBOL_GPL(__round_jiffies_relative);
--
--/**
-- * round_jiffies - function to round jiffies to a full second
-- * @j: the time in (absolute) jiffies that should be rounded
-- *
-- * round_jiffies() rounds an absolute time in the future (in jiffies)
-- * up or down to (approximately) full seconds. This is useful for timers
-- * for which the exact time they fire does not matter too much, as long as
-- * they fire approximately every X seconds.
-- *
-- * By rounding these timers to whole seconds, all such timers will fire
-- * at the same time, rather than at various times spread out. The goal
-- * of this is to have the CPU wake up less, which saves power.
-- *
-- * The return value is the rounded version of the @j parameter.
-- */
--unsigned long round_jiffies(unsigned long j)
--{
-- return __round_jiffies(j, raw_smp_processor_id());
--}
--EXPORT_SYMBOL_GPL(round_jiffies);
--
--/**
-- * round_jiffies_relative - function to round jiffies to a full second
-- * @j: the time in (relative) jiffies that should be rounded
-- *
-- * round_jiffies_relative() rounds a time delta in the future (in jiffies)
-- * up or down to (approximately) full seconds. This is useful for timers
-- * for which the exact time they fire does not matter too much, as long as
-- * they fire approximately every X seconds.
-- *
-- * By rounding these timers to whole seconds, all such timers will fire
-- * at the same time, rather than at various times spread out. The goal
-- * of this is to have the CPU wake up less, which saves power.
-- *
-- * The return value is the rounded version of the @j parameter.
-- */
--unsigned long round_jiffies_relative(unsigned long j)
--{
-- return __round_jiffies_relative(j, raw_smp_processor_id());
--}
--EXPORT_SYMBOL_GPL(round_jiffies_relative);
--
--
--static inline void set_running_timer(tvec_base_t *base,
-- struct timer_list *timer)
--{
--#ifdef CONFIG_SMP
-- base->running_timer = timer;
--#endif
--}
--
--static void internal_add_timer(tvec_base_t *base, struct timer_list *timer)
--{
-- unsigned long expires = timer->expires;
-- unsigned long idx = expires - base->timer_jiffies;
-- struct list_head *vec;
--
-- if (idx < TVR_SIZE) {
-- int i = expires & TVR_MASK;
-- vec = base->tv1.vec + i;
-- } else if (idx < 1 << (TVR_BITS + TVN_BITS)) {
-- int i = (expires >> TVR_BITS) & TVN_MASK;
-- vec = base->tv2.vec + i;
-- } else if (idx < 1 << (TVR_BITS + 2 * TVN_BITS)) {
-- int i = (expires >> (TVR_BITS + TVN_BITS)) & TVN_MASK;
-- vec = base->tv3.vec + i;
-- } else if (idx < 1 << (TVR_BITS + 3 * TVN_BITS)) {
-- int i = (expires >> (TVR_BITS + 2 * TVN_BITS)) & TVN_MASK;
-- vec = base->tv4.vec + i;
-- } else if ((signed long) idx < 0) {
-- /*
-- * Can happen if you add a timer with expires == jiffies,
-- * or you set a timer to go off in the past
-- */
-- vec = base->tv1.vec + (base->timer_jiffies & TVR_MASK);
-- } else {
-- int i;
-- /* If the timeout is larger than 0xffffffff on 64-bit
-- * architectures then we use the maximum timeout:
-- */
-- if (idx > 0xffffffffUL) {
-- idx = 0xffffffffUL;
-- expires = idx + base->timer_jiffies;
-- }
-- i = (expires >> (TVR_BITS + 3 * TVN_BITS)) & TVN_MASK;
-- vec = base->tv5.vec + i;
-- }
-- /*
-- * Timers are FIFO:
-- */
-- list_add_tail(&timer->entry, vec);
--}
--
--#ifdef CONFIG_TIMER_STATS
--void __timer_stats_timer_set_start_info(struct timer_list *timer, void *addr)
--{
-- if (timer->start_site)
-- return;
--
-- timer->start_site = addr;
-- memcpy(timer->start_comm, current->comm, TASK_COMM_LEN);
-- timer->start_pid = current->pid;
--}
--
--static void timer_stats_account_timer(struct timer_list *timer)
--{
-- unsigned int flag = 0;
--
-- if (unlikely(tbase_get_deferrable(timer->base)))
-- flag |= TIMER_STATS_FLAG_DEFERRABLE;
--
-- timer_stats_update_stats(timer, timer->start_pid, timer->start_site,
-- timer->function, timer->start_comm, flag);
--}
--
--#else
--static void timer_stats_account_timer(struct timer_list *timer) {}
--#endif
--
--/**
-- * init_timer - initialize a timer.
-- * @timer: the timer to be initialized
-- *
-- * init_timer() must be done to a timer prior calling *any* of the
-- * other timer functions.
-- */
--void fastcall init_timer(struct timer_list *timer)
--{
-- timer->entry.next = NULL;
-- timer->base = __raw_get_cpu_var(tvec_bases);
--#ifdef CONFIG_TIMER_STATS
-- timer->start_site = NULL;
-- timer->start_pid = -1;
-- memset(timer->start_comm, 0, TASK_COMM_LEN);
--#endif
--}
--EXPORT_SYMBOL(init_timer);
--
--void fastcall init_timer_deferrable(struct timer_list *timer)
--{
-- init_timer(timer);
-- timer_set_deferrable(timer);
--}
--EXPORT_SYMBOL(init_timer_deferrable);
--
--static inline void detach_timer(struct timer_list *timer,
-- int clear_pending)
--{
-- struct list_head *entry = &timer->entry;
--
-- __list_del(entry->prev, entry->next);
-- if (clear_pending)
-- entry->next = NULL;
-- entry->prev = LIST_POISON2;
--}
--
--/*
-- * We are using hashed locking: holding per_cpu(tvec_bases).lock
-- * means that all timers which are tied to this base via timer->base are
-- * locked, and the base itself is locked too.
-- *
-- * So __run_timers/migrate_timers can safely modify all timers which could
-- * be found on ->tvX lists.
-- *
-- * When the timer's base is locked, and the timer removed from list, it is
-- * possible to set timer->base = NULL and drop the lock: the timer remains
-- * locked.
-- */
--static tvec_base_t *lock_timer_base(struct timer_list *timer,
-- unsigned long *flags)
-- __acquires(timer->base->lock)
--{
-- tvec_base_t *base;
--
-- for (;;) {
-- tvec_base_t *prelock_base = timer->base;
-- base = tbase_get_base(prelock_base);
-- if (likely(base != NULL)) {
-- spin_lock_irqsave(&base->lock, *flags);
-- if (likely(prelock_base == timer->base))
-- return base;
-- /* The timer has migrated to another CPU */
-- spin_unlock_irqrestore(&base->lock, *flags);
-- }
-- cpu_relax();
-- }
--}
--
--int __mod_timer(struct timer_list *timer, unsigned long expires)
--{
-- tvec_base_t *base, *new_base;
-- unsigned long flags;
-- int ret = 0;
--
-- timer_stats_timer_set_start_info(timer);
-- BUG_ON(!timer->function);
--
-- base = lock_timer_base(timer, &flags);
--
-- if (timer_pending(timer)) {
-- detach_timer(timer, 0);
-- ret = 1;
-- }
--
-- new_base = __get_cpu_var(tvec_bases);
--
-- if (base != new_base) {
-- /*
-- * We are trying to schedule the timer on the local CPU.
-- * However we can't change timer's base while it is running,
-- * otherwise del_timer_sync() can't detect that the timer's
-- * handler yet has not finished. This also guarantees that
-- * the timer is serialized wrt itself.
-- */
-- if (likely(base->running_timer != timer)) {
-- /* See the comment in lock_timer_base() */
-- timer_set_base(timer, NULL);
-- spin_unlock(&base->lock);
-- base = new_base;
-- spin_lock(&base->lock);
-- timer_set_base(timer, base);
-- }
-- }
--
-- timer->expires = expires;
-- internal_add_timer(base, timer);
-- spin_unlock_irqrestore(&base->lock, flags);
--
-- return ret;
--}
--
--EXPORT_SYMBOL(__mod_timer);
--
--/**
-- * add_timer_on - start a timer on a particular CPU
-- * @timer: the timer to be added
-- * @cpu: the CPU to start it on
-- *
-- * This is not very scalable on SMP. Double adds are not possible.
-- */
--void add_timer_on(struct timer_list *timer, int cpu)
--{
-- tvec_base_t *base = per_cpu(tvec_bases, cpu);
-- unsigned long flags;
--
-- timer_stats_timer_set_start_info(timer);
-- BUG_ON(timer_pending(timer) || !timer->function);
-- spin_lock_irqsave(&base->lock, flags);
-- timer_set_base(timer, base);
-- internal_add_timer(base, timer);
-- /*
-- * Check whether the other CPU is idle and needs to be
-- * triggered to reevaluate the timer wheel when nohz is
-- * active. We are protected against the other CPU fiddling
-- * with the timer by holding the timer base lock. This also
-- * makes sure that a CPU on the way to idle can not evaluate
-- * the timer wheel.
-- */
-- wake_up_idle_cpu(cpu);
-- spin_unlock_irqrestore(&base->lock, flags);
--}
--
--/**
-- * mod_timer - modify a timer's timeout
-- * @timer: the timer to be modified
-- * @expires: new timeout in jiffies
-- *
-- * mod_timer() is a more efficient way to update the expire field of an
-- * active timer (if the timer is inactive it will be activated)
-- *
-- * mod_timer(timer, expires) is equivalent to:
-- *
-- * del_timer(timer); timer->expires = expires; add_timer(timer);
-- *
-- * Note that if there are multiple unserialized concurrent users of the
-- * same timer, then mod_timer() is the only safe way to modify the timeout,
-- * since add_timer() cannot modify an already running timer.
-- *
-- * The function returns whether it has modified a pending timer or not.
-- * (ie. mod_timer() of an inactive timer returns 0, mod_timer() of an
-- * active timer returns 1.)
-- */
--int mod_timer(struct timer_list *timer, unsigned long expires)
--{
-- BUG_ON(!timer->function);
--
-- timer_stats_timer_set_start_info(timer);
-- /*
-- * This is a common optimization triggered by the
-- * networking code - if the timer is re-modified
-- * to be the same thing then just return:
-- */
-- if (timer->expires == expires && timer_pending(timer))
-- return 1;
--
-- return __mod_timer(timer, expires);
--}
--
--EXPORT_SYMBOL(mod_timer);
--
--/**
-- * del_timer - deactive a timer.
-- * @timer: the timer to be deactivated
-- *
-- * del_timer() deactivates a timer - this works on both active and inactive
-- * timers.
-- *
-- * The function returns whether it has deactivated a pending timer or not.
-- * (ie. del_timer() of an inactive timer returns 0, del_timer() of an
-- * active timer returns 1.)
-- */
--int del_timer(struct timer_list *timer)
--{
-- tvec_base_t *base;
-- unsigned long flags;
-- int ret = 0;
--
-- timer_stats_timer_clear_start_info(timer);
-- if (timer_pending(timer)) {
-- base = lock_timer_base(timer, &flags);
-- if (timer_pending(timer)) {
-- detach_timer(timer, 1);
-- ret = 1;
-- }
-- spin_unlock_irqrestore(&base->lock, flags);
-- }
--
-- return ret;
--}
--
--EXPORT_SYMBOL(del_timer);
--
--#ifdef CONFIG_SMP
--/**
-- * try_to_del_timer_sync - Try to deactivate a timer
-- * @timer: timer do del
-- *
-- * This function tries to deactivate a timer. Upon successful (ret >= 0)
-- * exit the timer is not queued and the handler is not running on any CPU.
-- *
-- * It must not be called from interrupt contexts.
-- */
--int try_to_del_timer_sync(struct timer_list *timer)
--{
-- tvec_base_t *base;
-- unsigned long flags;
-- int ret = -1;
--
-- base = lock_timer_base(timer, &flags);
--
-- if (base->running_timer == timer)
-- goto out;
--
-- ret = 0;
-- if (timer_pending(timer)) {
-- detach_timer(timer, 1);
-- ret = 1;
-- }
--out:
-- spin_unlock_irqrestore(&base->lock, flags);
--
-- return ret;
--}
--
--EXPORT_SYMBOL(try_to_del_timer_sync);
--
--/**
-- * del_timer_sync - deactivate a timer and wait for the handler to finish.
-- * @timer: the timer to be deactivated
-- *
-- * This function only differs from del_timer() on SMP: besides deactivating
-- * the timer it also makes sure the handler has finished executing on other
-- * CPUs.
-- *
-- * Synchronization rules: Callers must prevent restarting of the timer,
-- * otherwise this function is meaningless. It must not be called from
-- * interrupt contexts. The caller must not hold locks which would prevent
-- * completion of the timer's handler. The timer's handler must not call
-- * add_timer_on(). Upon exit the timer is not queued and the handler is
-- * not running on any CPU.
-- *
-- * The function returns whether it has deactivated a pending timer or not.
-- */
--int del_timer_sync(struct timer_list *timer)
--{
-- for (;;) {
-- int ret = try_to_del_timer_sync(timer);
-- if (ret >= 0)
-- return ret;
-- cpu_relax();
-- }
--}
--
--EXPORT_SYMBOL(del_timer_sync);
--#endif
--
--static int cascade(tvec_base_t *base, tvec_t *tv, int index)
--{
-- /* cascade all the timers from tv up one level */
-- struct timer_list *timer, *tmp;
-- struct list_head tv_list;
--
-- list_replace_init(tv->vec + index, &tv_list);
--
-- /*
-- * We are removing _all_ timers from the list, so we
-- * don't have to detach them individually.
-- */
-- list_for_each_entry_safe(timer, tmp, &tv_list, entry) {
-- BUG_ON(tbase_get_base(timer->base) != base);
-- internal_add_timer(base, timer);
-- }
--
-- return index;
--}
--
--#define INDEX(N) ((base->timer_jiffies >> (TVR_BITS + (N) * TVN_BITS)) & TVN_MASK)
--
--/**
-- * __run_timers - run all expired timers (if any) on this CPU.
-- * @base: the timer vector to be processed.
-- *
-- * This function cascades all vectors and executes all expired timer
-- * vectors.
-- */
--static inline void __run_timers(tvec_base_t *base)
--{
-- struct timer_list *timer;
--
-- spin_lock_irq(&base->lock);
-- while (time_after_eq(jiffies, base->timer_jiffies)) {
-- struct list_head work_list;
-- struct list_head *head = &work_list;
-- int index = base->timer_jiffies & TVR_MASK;
--
-- /*
-- * Cascade timers:
-- */
-- if (!index &&
-- (!cascade(base, &base->tv2, INDEX(0))) &&
-- (!cascade(base, &base->tv3, INDEX(1))) &&
-- !cascade(base, &base->tv4, INDEX(2)))
-- cascade(base, &base->tv5, INDEX(3));
-- ++base->timer_jiffies;
-- list_replace_init(base->tv1.vec + index, &work_list);
-- while (!list_empty(head)) {
-- void (*fn)(unsigned long);
-- unsigned long data;
--
-- timer = list_first_entry(head, struct timer_list,entry);
-- fn = timer->function;
-- data = timer->data;
--
-- timer_stats_account_timer(timer);
--
-- set_running_timer(base, timer);
-- detach_timer(timer, 1);
-- spin_unlock_irq(&base->lock);
-- {
-- int preempt_count = preempt_count();
-- fn(data);
-- if (preempt_count != preempt_count()) {
-- printk(KERN_WARNING "huh, entered %p "
-- "with preempt_count %08x, exited"
-- " with %08x?\n",
-- fn, preempt_count,
-- preempt_count());
-- BUG();
-- }
-- }
-- spin_lock_irq(&base->lock);
-- }
-- }
-- set_running_timer(base, NULL);
-- spin_unlock_irq(&base->lock);
--}
--
--#if defined(CONFIG_NO_IDLE_HZ) || defined(CONFIG_NO_HZ)
--/*
-- * Find out when the next timer event is due to happen. This
-- * is used on S/390 to stop all activity when a cpus is idle.
-- * This functions needs to be called disabled.
-- */
--static unsigned long __next_timer_interrupt(tvec_base_t *base)
--{
-- unsigned long timer_jiffies = base->timer_jiffies;
-- unsigned long expires = timer_jiffies + NEXT_TIMER_MAX_DELTA;
-- int index, slot, array, found = 0;
-- struct timer_list *nte;
-- tvec_t *varray[4];
--
-- /* Look for timer events in tv1. */
-- index = slot = timer_jiffies & TVR_MASK;
-- do {
-- list_for_each_entry(nte, base->tv1.vec + slot, entry) {
-- if (tbase_get_deferrable(nte->base))
-- continue;
--
-- found = 1;
-- expires = nte->expires;
-- /* Look at the cascade bucket(s)? */
-- if (!index || slot < index)
-- goto cascade;
-- return expires;
-- }
-- slot = (slot + 1) & TVR_MASK;
-- } while (slot != index);
--
--cascade:
-- /* Calculate the next cascade event */
-- if (index)
-- timer_jiffies += TVR_SIZE - index;
-- timer_jiffies >>= TVR_BITS;
--
-- /* Check tv2-tv5. */
-- varray[0] = &base->tv2;
-- varray[1] = &base->tv3;
-- varray[2] = &base->tv4;
-- varray[3] = &base->tv5;
--
-- for (array = 0; array < 4; array++) {
-- tvec_t *varp = varray[array];
--
-- index = slot = timer_jiffies & TVN_MASK;
-- do {
-- list_for_each_entry(nte, varp->vec + slot, entry) {
-- found = 1;
-- if (time_before(nte->expires, expires))
-- expires = nte->expires;
-- }
-- /*
-- * Do we still search for the first timer or are
-- * we looking up the cascade buckets ?
-- */
-- if (found) {
-- /* Look at the cascade bucket(s)? */
-- if (!index || slot < index)
-- break;
-- return expires;
-- }
-- slot = (slot + 1) & TVN_MASK;
-- } while (slot != index);
--
-- if (index)
-- timer_jiffies += TVN_SIZE - index;
-- timer_jiffies >>= TVN_BITS;
-- }
-- return expires;
--}
--
--/*
-- * Check, if the next hrtimer event is before the next timer wheel
-- * event:
-- */
--static unsigned long cmp_next_hrtimer_event(unsigned long now,
-- unsigned long expires)
--{
-- ktime_t hr_delta = hrtimer_get_next_event();
-- struct timespec tsdelta;
-- unsigned long delta;
--
-- if (hr_delta.tv64 == KTIME_MAX)
-- return expires;
--
-- /*
-- * Expired timer available, let it expire in the next tick
-- */
-- if (hr_delta.tv64 <= 0)
-- return now + 1;
--
-- tsdelta = ktime_to_timespec(hr_delta);
-- delta = timespec_to_jiffies(&tsdelta);
--
-- /*
-- * Limit the delta to the max value, which is checked in
-- * tick_nohz_stop_sched_tick():
-- */
-- if (delta > NEXT_TIMER_MAX_DELTA)
-- delta = NEXT_TIMER_MAX_DELTA;
--
-- /*
-- * Take rounding errors in to account and make sure, that it
-- * expires in the next tick. Otherwise we go into an endless
-- * ping pong due to tick_nohz_stop_sched_tick() retriggering
-- * the timer softirq
-- */
-- if (delta < 1)
-- delta = 1;
-- now += delta;
-- if (time_before(now, expires))
-- return now;
-- return expires;
--}
--
--/**
-- * get_next_timer_interrupt - return the jiffy of the next pending timer
-- * @now: current time (in jiffies)
-- */
--unsigned long get_next_timer_interrupt(unsigned long now)
--{
-- tvec_base_t *base = __get_cpu_var(tvec_bases);
-- unsigned long expires;
--
-- spin_lock(&base->lock);
-- expires = __next_timer_interrupt(base);
-- spin_unlock(&base->lock);
--
-- if (time_before_eq(expires, now))
-- return now;
--
-- return cmp_next_hrtimer_event(now, expires);
--}
--
--#ifdef CONFIG_NO_IDLE_HZ
--unsigned long next_timer_interrupt(void)
--{
-- return get_next_timer_interrupt(jiffies);
--}
--#endif
--
--#endif
--
--#ifndef CONFIG_VIRT_CPU_ACCOUNTING
--void account_process_tick(struct task_struct *p, int user_tick)
--{
-- if (user_tick) {
-- account_user_time(p, jiffies_to_cputime(1));
-- account_user_time_scaled(p, jiffies_to_cputime(1));
-- } else {
-- account_system_time(p, HARDIRQ_OFFSET, jiffies_to_cputime(1));
-- account_system_time_scaled(p, jiffies_to_cputime(1));
-- }
--}
--#endif
--
--/*
-- * Called from the timer interrupt handler to charge one tick to the current
-- * process. user_tick is 1 if the tick is user time, 0 for system.
-- */
--void update_process_times(int user_tick)
--{
-- struct task_struct *p = current;
-- int cpu = smp_processor_id();
--
-- /* Note: this timer irq context must be accounted for as well. */
-- account_process_tick(p, user_tick);
-- run_local_timers();
-- if (rcu_pending(cpu))
-- rcu_check_callbacks(cpu, user_tick);
-- scheduler_tick();
-- run_posix_cpu_timers(p);
--}
--
--/*
-- * Nr of active tasks - counted in fixed-point numbers
-- */
--static unsigned long count_active_tasks(void)
--{
-- return nr_active() * FIXED_1;
--}
--
--/*
-- * Hmm.. Changed this, as the GNU make sources (load.c) seems to
-- * imply that avenrun[] is the standard name for this kind of thing.
-- * Nothing else seems to be standardized: the fractional size etc
-- * all seem to differ on different machines.
-- *
-- * Requires xtime_lock to access.
-- */
--unsigned long avenrun[3];
--
--EXPORT_SYMBOL(avenrun);
--
--/*
-- * calc_load - given tick count, update the avenrun load estimates.
-- * This is called while holding a write_lock on xtime_lock.
-- */
--static inline void calc_load(unsigned long ticks)
--{
-- unsigned long active_tasks; /* fixed-point */
-- static int count = LOAD_FREQ;
--
-- count -= ticks;
-- if (unlikely(count < 0)) {
-- active_tasks = count_active_tasks();
-- do {
-- CALC_LOAD(avenrun[0], EXP_1, active_tasks);
-- CALC_LOAD(avenrun[1], EXP_5, active_tasks);
-- CALC_LOAD(avenrun[2], EXP_15, active_tasks);
-- count += LOAD_FREQ;
-- } while (count < 0);
-- }
--}
--
--/*
-- * This function runs timers and the timer-tq in bottom half context.
-- */
--static void run_timer_softirq(struct softirq_action *h)
--{
-- tvec_base_t *base = __get_cpu_var(tvec_bases);
--
-- hrtimer_run_queues();
--
-- if (time_after_eq(jiffies, base->timer_jiffies))
-- __run_timers(base);
--}
--
--/*
-- * Called by the local, per-CPU timer interrupt on SMP.
-- */
--void run_local_timers(void)
--{
-- raise_softirq(TIMER_SOFTIRQ);
-- softlockup_tick();
--}
--
--/*
-- * Called by the timer interrupt. xtime_lock must already be taken
-- * by the timer IRQ!
-- */
--static inline void update_times(unsigned long ticks)
--{
-- update_wall_time();
-- calc_load(ticks);
--}
--
--/*
-- * The 64-bit jiffies value is not atomic - you MUST NOT read it
-- * without sampling the sequence number in xtime_lock.
-- * jiffies is defined in the linker script...
-- */
--
--void do_timer(unsigned long ticks)
--{
-- jiffies_64 += ticks;
-- update_times(ticks);
--}
--
--#ifdef __ARCH_WANT_SYS_ALARM
--
--/*
-- * For backwards compatibility? This can be done in libc so Alpha
-- * and all newer ports shouldn't need it.
-- */
--SYSCALL_DEFINE1(alarm, unsigned int, seconds)
--{
-- return alarm_setitimer(seconds);
--}
--
--#endif
--
--#ifndef __alpha__
--
--/*
-- * The Alpha uses getxpid, getxuid, and getxgid instead. Maybe this
-- * should be moved into arch/i386 instead?
-- */
--
--/**
-- * sys_getpid - return the thread group id of the current process
-- *
-- * Note, despite the name, this returns the tgid not the pid. The tgid and
-- * the pid are identical unless CLONE_THREAD was specified on clone() in
-- * which case the tgid is the same in all threads of the same group.
-- *
-- * This is SMP safe as current->tgid does not change.
-- */
--SYSCALL_DEFINE0(getpid)
--{
-- return task_tgid_vnr(current);
--}
--
--/*
-- * Accessing ->real_parent is not SMP-safe, it could
-- * change from under us. However, we can use a stale
-- * value of ->real_parent under rcu_read_lock(), see
-- * release_task()->call_rcu(delayed_put_task_struct).
-- */
--asmlinkage long sys_getppid(void)
--{
-- int pid;
--
-- rcu_read_lock();
-- pid = task_tgid_nr_ns(current->real_parent, current->nsproxy->pid_ns);
-- rcu_read_unlock();
--
-- return pid;
--}
--
--asmlinkage long sys_getuid(void)
--{
-- /* Only we change this so SMP safe */
-- return current->uid;
--}
--
--asmlinkage long sys_geteuid(void)
--{
-- /* Only we change this so SMP safe */
-- return current->euid;
--}
--
--asmlinkage long sys_getgid(void)
--{
-- /* Only we change this so SMP safe */
-- return current->gid;
--}
--
--asmlinkage long sys_getegid(void)
--{
-- /* Only we change this so SMP safe */
-- return current->egid;
--}
--
--#endif
--
--static void process_timeout(unsigned long __data)
--{
-- wake_up_process((struct task_struct *)__data);
--}
--
--/**
-- * schedule_timeout - sleep until timeout
-- * @timeout: timeout value in jiffies
-- *
-- * Make the current task sleep until @timeout jiffies have
-- * elapsed. The routine will return immediately unless
-- * the current task state has been set (see set_current_state()).
-- *
-- * You can set the task state as follows -
-- *
-- * %TASK_UNINTERRUPTIBLE - at least @timeout jiffies are guaranteed to
-- * pass before the routine returns. The routine will return 0
-- *
-- * %TASK_INTERRUPTIBLE - the routine may return early if a signal is
-- * delivered to the current task. In this case the remaining time
-- * in jiffies will be returned, or 0 if the timer expired in time
-- *
-- * The current task state is guaranteed to be TASK_RUNNING when this
-- * routine returns.
-- *
-- * Specifying a @timeout value of %MAX_SCHEDULE_TIMEOUT will schedule
-- * the CPU away without a bound on the timeout. In this case the return
-- * value will be %MAX_SCHEDULE_TIMEOUT.
-- *
-- * In all cases the return value is guaranteed to be non-negative.
-- */
--fastcall signed long __sched schedule_timeout(signed long timeout)
--{
-- struct timer_list timer;
-- unsigned long expire;
--
-- switch (timeout)
-- {
-- case MAX_SCHEDULE_TIMEOUT:
-- /*
-- * These two special cases are useful to be comfortable
-- * in the caller. Nothing more. We could take
-- * MAX_SCHEDULE_TIMEOUT from one of the negative value
-- * but I' d like to return a valid offset (>=0) to allow
-- * the caller to do everything it want with the retval.
-- */
-- schedule();
-- goto out;
-- default:
-- /*
-- * Another bit of PARANOID. Note that the retval will be
-- * 0 since no piece of kernel is supposed to do a check
-- * for a negative retval of schedule_timeout() (since it
-- * should never happens anyway). You just have the printk()
-- * that will tell you if something is gone wrong and where.
-- */
-- if (timeout < 0) {
-- printk(KERN_ERR "schedule_timeout: wrong timeout "
-- "value %lx\n", timeout);
-- dump_stack();
-- current->state = TASK_RUNNING;
-- goto out;
-- }
-- }
--
-- expire = timeout + jiffies;
--
-- setup_timer(&timer, process_timeout, (unsigned long)current);
-- __mod_timer(&timer, expire);
-- schedule();
-- del_singleshot_timer_sync(&timer);
--
-- timeout = expire - jiffies;
--
-- out:
-- return timeout < 0 ? 0 : timeout;
--}
--EXPORT_SYMBOL(schedule_timeout);
--
--/*
-- * We can use __set_current_state() here because schedule_timeout() calls
-- * schedule() unconditionally.
-- */
--signed long __sched schedule_timeout_interruptible(signed long timeout)
--{
-- __set_current_state(TASK_INTERRUPTIBLE);
-- return schedule_timeout(timeout);
--}
--EXPORT_SYMBOL(schedule_timeout_interruptible);
--
--signed long __sched schedule_timeout_uninterruptible(signed long timeout)
--{
-- __set_current_state(TASK_UNINTERRUPTIBLE);
-- return schedule_timeout(timeout);
--}
--EXPORT_SYMBOL(schedule_timeout_uninterruptible);
--
--/* Thread ID - the internal kernel "pid" */
--SYSCALL_DEFINE0(gettid)
--{
-- return task_pid_vnr(current);
--}
--
--/**
-- * do_sysinfo - fill in sysinfo struct
-- * @info: pointer to buffer to fill
-- */
--int do_sysinfo(struct sysinfo *info)
--{
-- unsigned long mem_total, sav_total;
-- unsigned int mem_unit, bitcount;
-- unsigned long seq;
--
-- memset(info, 0, sizeof(struct sysinfo));
--
-- do {
-- struct timespec tp;
-- seq = read_seqbegin(&xtime_lock);
--
-- /*
-- * This is annoying. The below is the same thing
-- * posix_get_clock_monotonic() does, but it wants to
-- * take the lock which we want to cover the loads stuff
-- * too.
-- */
--
-- getnstimeofday(&tp);
-- tp.tv_sec += wall_to_monotonic.tv_sec;
-- tp.tv_nsec += wall_to_monotonic.tv_nsec;
-- monotonic_to_bootbased(&tp);
-- if (tp.tv_nsec - NSEC_PER_SEC >= 0) {
-- tp.tv_nsec = tp.tv_nsec - NSEC_PER_SEC;
-- tp.tv_sec++;
-- }
-- info->uptime = tp.tv_sec + (tp.tv_nsec ? 1 : 0);
--
-- info->loads[0] = avenrun[0] << (SI_LOAD_SHIFT - FSHIFT);
-- info->loads[1] = avenrun[1] << (SI_LOAD_SHIFT - FSHIFT);
-- info->loads[2] = avenrun[2] << (SI_LOAD_SHIFT - FSHIFT);
--
-- info->procs = nr_threads;
-- } while (read_seqretry(&xtime_lock, seq));
--
-- si_meminfo(info);
-- si_swapinfo(info);
--
-- /*
-- * If the sum of all the available memory (i.e. ram + swap)
-- * is less than can be stored in a 32 bit unsigned long then
-- * we can be binary compatible with 2.2.x kernels. If not,
-- * well, in that case 2.2.x was broken anyways...
-- *
-- * -Erik Andersen <andersee at debian.org>
-- */
--
-- mem_total = info->totalram + info->totalswap;
-- if (mem_total < info->totalram || mem_total < info->totalswap)
-- goto out;
-- bitcount = 0;
-- mem_unit = info->mem_unit;
-- while (mem_unit > 1) {
-- bitcount++;
-- mem_unit >>= 1;
-- sav_total = mem_total;
-- mem_total <<= 1;
-- if (mem_total < sav_total)
-- goto out;
-- }
--
-- /*
-- * If mem_total did not overflow, multiply all memory values by
-- * info->mem_unit and set it to 1. This leaves things compatible
-- * with 2.2.x, and also retains compatibility with earlier 2.4.x
-- * kernels...
-- */
--
-- info->mem_unit = 1;
-- info->totalram <<= bitcount;
-- info->freeram <<= bitcount;
-- info->sharedram <<= bitcount;
-- info->bufferram <<= bitcount;
-- info->totalswap <<= bitcount;
-- info->freeswap <<= bitcount;
-- info->totalhigh <<= bitcount;
-- info->freehigh <<= bitcount;
--
--out:
-- return 0;
--}
--
--asmlinkage long sys_sysinfo(struct sysinfo __user *info)
--{
-- struct sysinfo val;
--
-- do_sysinfo(&val);
--
-- if (copy_to_user(info, &val, sizeof(struct sysinfo)))
-- return -EFAULT;
--
-- return 0;
--}
--
--/*
-- * lockdep: we want to track each per-CPU base as a separate lock-class,
-- * but timer-bases are kmalloc()-ed, so we need to attach separate
-- * keys to them:
-- */
--static struct lock_class_key base_lock_keys[NR_CPUS];
--
--static int __cpuinit init_timers_cpu(int cpu)
--{
-- int j;
-- tvec_base_t *base;
-- static char __cpuinitdata tvec_base_done[NR_CPUS];
--
-- if (!tvec_base_done[cpu]) {
-- static char boot_done;
--
-- if (boot_done) {
-- /*
-- * The APs use this path later in boot
-- */
-- base = kmalloc_node(sizeof(*base),
-- GFP_KERNEL | __GFP_ZERO,
-- cpu_to_node(cpu));
-- if (!base)
-- return -ENOMEM;
--
-- /* Make sure that tvec_base is 2 byte aligned */
-- if (tbase_get_deferrable(base)) {
-- WARN_ON(1);
-- kfree(base);
-- return -ENOMEM;
-- }
-- per_cpu(tvec_bases, cpu) = base;
-- } else {
-- /*
-- * This is for the boot CPU - we use compile-time
-- * static initialisation because per-cpu memory isn't
-- * ready yet and because the memory allocators are not
-- * initialised either.
-- */
-- boot_done = 1;
-- base = &boot_tvec_bases;
-- }
-- tvec_base_done[cpu] = 1;
-- } else {
-- base = per_cpu(tvec_bases, cpu);
-- }
--
-- spin_lock_init(&base->lock);
-- lockdep_set_class(&base->lock, base_lock_keys + cpu);
--
-- for (j = 0; j < TVN_SIZE; j++) {
-- INIT_LIST_HEAD(base->tv5.vec + j);
-- INIT_LIST_HEAD(base->tv4.vec + j);
-- INIT_LIST_HEAD(base->tv3.vec + j);
-- INIT_LIST_HEAD(base->tv2.vec + j);
-- }
-- for (j = 0; j < TVR_SIZE; j++)
-- INIT_LIST_HEAD(base->tv1.vec + j);
--
-- base->timer_jiffies = jiffies;
-- return 0;
--}
--
--#ifdef CONFIG_HOTPLUG_CPU
--static void migrate_timer_list(tvec_base_t *new_base, struct list_head *head)
--{
-- struct timer_list *timer;
--
-- while (!list_empty(head)) {
-- timer = list_first_entry(head, struct timer_list, entry);
-- detach_timer(timer, 0);
-- timer_set_base(timer, new_base);
-- internal_add_timer(new_base, timer);
-- }
--}
--
--static void __cpuinit migrate_timers(int cpu)
--{
-- tvec_base_t *old_base;
-- tvec_base_t *new_base;
-- int i;
--
-- BUG_ON(cpu_online(cpu));
-- old_base = per_cpu(tvec_bases, cpu);
-- new_base = get_cpu_var(tvec_bases);
--
-- local_irq_disable();
-- double_spin_lock(&new_base->lock, &old_base->lock,
-- smp_processor_id() < cpu);
--
-- BUG_ON(old_base->running_timer);
--
-- for (i = 0; i < TVR_SIZE; i++)
-- migrate_timer_list(new_base, old_base->tv1.vec + i);
-- for (i = 0; i < TVN_SIZE; i++) {
-- migrate_timer_list(new_base, old_base->tv2.vec + i);
-- migrate_timer_list(new_base, old_base->tv3.vec + i);
-- migrate_timer_list(new_base, old_base->tv4.vec + i);
-- migrate_timer_list(new_base, old_base->tv5.vec + i);
-- }
--
-- double_spin_unlock(&new_base->lock, &old_base->lock,
-- smp_processor_id() < cpu);
-- local_irq_enable();
-- put_cpu_var(tvec_bases);
--}
--#endif /* CONFIG_HOTPLUG_CPU */
--
--static int __cpuinit timer_cpu_notify(struct notifier_block *self,
-- unsigned long action, void *hcpu)
--{
-- long cpu = (long)hcpu;
-- switch(action) {
-- case CPU_UP_PREPARE:
-- case CPU_UP_PREPARE_FROZEN:
-- if (init_timers_cpu(cpu) < 0)
-- return NOTIFY_BAD;
-- break;
--#ifdef CONFIG_HOTPLUG_CPU
-- case CPU_DEAD:
-- case CPU_DEAD_FROZEN:
-- migrate_timers(cpu);
-- break;
--#endif
-- default:
-- break;
-- }
-- return NOTIFY_OK;
--}
--
--static struct notifier_block __cpuinitdata timers_nb = {
-- .notifier_call = timer_cpu_notify,
--};
--
--
--void __init init_timers(void)
--{
-- int err = timer_cpu_notify(&timers_nb, (unsigned long)CPU_UP_PREPARE,
-- (void *)(long)smp_processor_id());
--
-- init_timer_stats();
--
-- BUG_ON(err == NOTIFY_BAD);
-- register_cpu_notifier(&timers_nb);
-- open_softirq(TIMER_SOFTIRQ, run_timer_softirq, NULL);
--}
--
--/**
-- * msleep - sleep safely even with waitqueue interruptions
-- * @msecs: Time in milliseconds to sleep for
-- */
--void msleep(unsigned int msecs)
--{
-- unsigned long timeout = msecs_to_jiffies(msecs) + 1;
--
-- while (timeout)
-- timeout = schedule_timeout_uninterruptible(timeout);
--}
--
--EXPORT_SYMBOL(msleep);
--
--/**
-- * msleep_interruptible - sleep waiting for signals
-- * @msecs: Time in milliseconds to sleep for
-- */
--unsigned long msleep_interruptible(unsigned int msecs)
--{
-- unsigned long timeout = msecs_to_jiffies(msecs) + 1;
--
-- while (timeout && !signal_pending(current))
-- timeout = schedule_timeout_interruptible(timeout);
-- return jiffies_to_msecs(timeout);
--}
--
--EXPORT_SYMBOL(msleep_interruptible);
Modified: dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0014-System-call-wrappers-part-04.patch
==============================================================================
--- /dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/0014-System-call-wrappers-part-04.patch (original)
+++ dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0014-System-call-wrappers-part-04.patch Mon Feb 9 15:47:53 2009
@@ -10,12 +10,12 @@
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.24 by dann frazier <dannf at debian.org>
+Adjusted to apply to Debian's 2.6.18 by dann frazier <dannf at debian.org>
-diff -urpN linux-source-2.6.24.orig/kernel/acct.c linux-source-2.6.24/kernel/acct.c
---- linux-source-2.6.24.orig/kernel/acct.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/kernel/acct.c 2009-01-21 00:58:10.000000000 -0700
-@@ -249,7 +249,7 @@ static int acct_on(char *name)
+diff -urpN linux-source-2.6.18.orig/kernel/acct.c linux-source-2.6.18/kernel/acct.c
+--- linux-source-2.6.18.orig/kernel/acct.c 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/kernel/acct.c 2009-01-25 21:05:51.000000000 -0700
+@@ -248,7 +248,7 @@ static int acct_on(char *name)
* should be written. If the filename is NULL, accounting will be
* shutdown.
*/
@@ -24,30 +24,30 @@
{
int error;
-diff -urpN linux-source-2.6.24.orig/kernel/capability.c linux-source-2.6.24/kernel/capability.c
---- linux-source-2.6.24.orig/kernel/capability.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/kernel/capability.c 2009-01-21 00:58:10.000000000 -0700
-@@ -36,7 +36,7 @@ static DEFINE_SPINLOCK(task_capability_l
+diff -urpN linux-source-2.6.18.orig/kernel/capability.c linux-source-2.6.18/kernel/capability.c
+--- linux-source-2.6.18.orig/kernel/capability.c 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/kernel/capability.c 2009-01-25 21:05:51.000000000 -0700
+@@ -41,7 +41,7 @@ static DEFINE_SPINLOCK(task_capability_l
*
* 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;
-@@ -165,7 +165,7 @@ static inline int cap_set_all(kernel_cap
+ int ret = 0;
+ pid_t pid;
+@@ -168,7 +168,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)
{
- kernel_cap_t inheritable, permitted, effective;
- __u32 version;
-diff -urpN linux-source-2.6.24.orig/kernel/exec_domain.c linux-source-2.6.24/kernel/exec_domain.c
---- linux-source-2.6.24.orig/kernel/exec_domain.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/kernel/exec_domain.c 2009-01-21 00:58:10.000000000 -0700
+ kernel_cap_t inheritable, permitted, effective;
+ __u32 version;
+diff -urpN linux-source-2.6.18.orig/kernel/exec_domain.c linux-source-2.6.18/kernel/exec_domain.c
+--- linux-source-2.6.18.orig/kernel/exec_domain.c 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/kernel/exec_domain.c 2009-01-25 21:05:51.000000000 -0700
@@ -189,8 +189,7 @@ get_exec_domain_list(char *page)
return (len);
}
@@ -58,10 +58,10 @@
{
u_long old = current->personality;
-diff -urpN linux-source-2.6.24.orig/kernel/itimer.c linux-source-2.6.24/kernel/itimer.c
---- linux-source-2.6.24.orig/kernel/itimer.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/kernel/itimer.c 2009-01-21 00:58:10.000000000 -0700
-@@ -109,7 +109,7 @@ int do_getitimer(int which, struct itime
+diff -urpN linux-source-2.6.18.orig/kernel/itimer.c linux-source-2.6.18/kernel/itimer.c
+--- linux-source-2.6.18.orig/kernel/itimer.c 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/kernel/itimer.c 2009-01-25 21:05:51.000000000 -0700
+@@ -110,7 +110,7 @@ int do_getitimer(int which, struct itime
return 0;
}
@@ -70,10 +70,10 @@
{
int error = -EFAULT;
struct itimerval get_buffer;
-diff -urpN linux-source-2.6.24.orig/kernel/signal.c linux-source-2.6.24/kernel/signal.c
---- linux-source-2.6.24.orig/kernel/signal.c 2009-01-21 00:05:39.000000000 -0700
-+++ linux-source-2.6.24/kernel/signal.c 2009-01-21 00:58:10.000000000 -0700
-@@ -2418,8 +2418,7 @@ out:
+diff -urpN linux-source-2.6.18.orig/kernel/signal.c linux-source-2.6.18/kernel/signal.c
+--- linux-source-2.6.18.orig/kernel/signal.c 2009-01-25 21:05:36.000000000 -0700
++++ linux-source-2.6.18/kernel/signal.c 2009-01-25 21:05:51.000000000 -0700
+@@ -2398,8 +2398,7 @@ out:
#ifdef __ARCH_WANT_SYS_SIGPENDING
@@ -83,7 +83,7 @@
{
return do_sigpending(set, sizeof(*set));
}
-@@ -2430,8 +2429,8 @@ sys_sigpending(old_sigset_t __user *set)
+@@ -2410,8 +2409,8 @@ sys_sigpending(old_sigset_t __user *set)
/* Some platforms have their own version with special arguments others
support only sys_rt_sigprocmask. */
@@ -94,19 +94,19 @@
{
int error;
old_sigset_t old_set, new_set;
-diff -urpN linux-source-2.6.24.orig/kernel/sys.c linux-source-2.6.24/kernel/sys.c
---- linux-source-2.6.24.orig/kernel/sys.c 2009-01-21 00:57:05.000000000 -0700
-+++ linux-source-2.6.24/kernel/sys.c 2009-01-21 00:58:10.000000000 -0700
-@@ -912,7 +912,7 @@ SYSCALL_DEFINE1(times, struct tms __user
- * Auch. Had to add the 'did_exec' flag to conform completely to POSIX.
+diff -urpN linux-source-2.6.18.orig/kernel/sys.c linux-source-2.6.18/kernel/sys.c
+--- linux-source-2.6.18.orig/kernel/sys.c 2009-01-25 21:05:36.000000000 -0700
++++ linux-source-2.6.18/kernel/sys.c 2009-01-25 21:06:17.000000000 -0700
+@@ -1247,7 +1247,7 @@ SYSCALL_DEFINE1(times, struct tms __user
* 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;
-@@ -1045,7 +1045,7 @@ SYSCALL_DEFINE1(getsid, pid_t, pid)
+@@ -1373,7 +1373,7 @@ SYSCALL_DEFINE1(getsid, pid_t, pid)
}
}
@@ -115,7 +115,7 @@
{
struct task_struct *group_leader = current->group_leader;
pid_t session;
-@@ -1290,7 +1290,7 @@ out:
+@@ -1616,7 +1616,7 @@ out:
* without another task interfering.
*/
Modified: dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0015-System-call-wrappers-part-05.patch
==============================================================================
--- /dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/0015-System-call-wrappers-part-05.patch (original)
+++ dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0015-System-call-wrappers-part-05.patch Mon Feb 9 15:47:53 2009
@@ -10,12 +10,12 @@
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.24 by dann frazier <dannf at debian.org>
+Adjusted to apply to Debian's 2.6.18 by dann frazier <dannf at debian.org>
-diff -urpN linux-source-2.6.24.orig/kernel/itimer.c linux-source-2.6.24/kernel/itimer.c
---- linux-source-2.6.24.orig/kernel/itimer.c 2009-01-21 00:58:10.000000000 -0700
-+++ linux-source-2.6.24/kernel/itimer.c 2009-01-21 00:58:47.000000000 -0700
-@@ -273,9 +273,8 @@ unsigned int alarm_setitimer(unsigned in
+diff -urpN linux-source-2.6.18.orig/kernel/itimer.c linux-source-2.6.18/kernel/itimer.c
+--- linux-source-2.6.18.orig/kernel/itimer.c 2009-01-25 20:36:32.000000000 -0700
++++ linux-source-2.6.18/kernel/itimer.c 2009-01-25 20:37:34.000000000 -0700
+@@ -329,9 +329,8 @@ unsigned int alarm_setitimer(unsigned in
return it_old.it_value.tv_sec;
}
@@ -27,10 +27,10 @@
{
struct itimerval set_buffer, get_buffer;
int error;
-diff -urpN linux-source-2.6.24.orig/kernel/posix-timers.c linux-source-2.6.24/kernel/posix-timers.c
---- linux-source-2.6.24.orig/kernel/posix-timers.c 2008-10-10 00:11:27.000000000 -0600
-+++ linux-source-2.6.24/kernel/posix-timers.c 2009-01-21 00:58:47.000000000 -0700
-@@ -459,10 +459,9 @@ static void release_posix_timer(struct k
+diff -urpN linux-source-2.6.18.orig/kernel/posix-timers.c linux-source-2.6.18/kernel/posix-timers.c
+--- linux-source-2.6.18.orig/kernel/posix-timers.c 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/kernel/posix-timers.c 2009-01-25 20:37:34.000000000 -0700
+@@ -429,10 +429,9 @@ static void release_posix_timer(struct k
/* Create a POSIX.1b interval timer. */
@@ -44,7 +44,7 @@
{
int error = 0;
struct k_itimer *new_timer = NULL;
-@@ -678,8 +677,8 @@ common_timer_get(struct k_itimer *timr,
+@@ -647,8 +646,8 @@ common_timer_get(struct k_itimer *timr,
}
/* Get the time remaining on a POSIX.1b interval timer. */
@@ -55,7 +55,7 @@
{
struct k_itimer *timr;
struct itimerspec cur_setting;
-@@ -708,8 +707,7 @@ sys_timer_gettime(timer_t timer_id, stru
+@@ -677,8 +676,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.
*/
@@ -65,7 +65,7 @@
{
struct k_itimer *timr;
int overrun;
-@@ -779,10 +777,9 @@ common_timer_set(struct k_itimer *timr,
+@@ -746,10 +744,9 @@ common_timer_set(struct k_itimer *timr,
}
/* Set a POSIX.1b interval timer */
@@ -79,7 +79,7 @@
{
struct k_itimer *timr;
struct itimerspec new_spec, old_spec;
-@@ -835,8 +832,7 @@ static inline int timer_delete_hook(stru
+@@ -802,8 +799,7 @@ static inline int timer_delete_hook(stru
}
/* Delete a POSIX.1b interval timer. */
@@ -88,8 +88,8 @@
+SYSCALL_DEFINE1(timer_delete, timer_t, timer_id)
{
struct k_itimer *timer;
- unsigned long flags;
-@@ -928,8 +924,8 @@ int do_posix_clock_nonanosleep(const clo
+ long flags;
+@@ -895,8 +891,8 @@ int do_posix_clock_nonanosleep(const clo
}
EXPORT_SYMBOL_GPL(do_posix_clock_nonanosleep);
@@ -100,7 +100,7 @@
{
struct timespec new_tp;
-@@ -941,8 +937,8 @@ asmlinkage long sys_clock_settime(const
+@@ -908,8 +904,8 @@ asmlinkage long sys_clock_settime(const
return CLOCK_DISPATCH(which_clock, clock_set, (which_clock, &new_tp));
}
@@ -111,7 +111,7 @@
{
struct timespec kernel_tp;
int error;
-@@ -958,8 +954,8 @@ sys_clock_gettime(const clockid_t which_
+@@ -925,8 +921,8 @@ sys_clock_gettime(const clockid_t which_
}
@@ -122,8 +122,8 @@
{
struct timespec rtn_tp;
int error;
-@@ -988,10 +984,9 @@ static int common_nsleep(const clockid_t
- which_clock);
+@@ -954,10 +950,9 @@ static int common_nsleep(const clockid_t
+ HRTIMER_ABS : HRTIMER_REL, which_clock);
}
-asmlinkage long
Modified: dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0016-System-call-wrappers-part-06.patch
==============================================================================
--- /dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/0016-System-call-wrappers-part-06.patch (original)
+++ dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0016-System-call-wrappers-part-06.patch Mon Feb 9 15:47:53 2009
@@ -10,12 +10,12 @@
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.24 by dann frazier <dannf at debian.org>
+Adjusted to apply to Debian's 2.6.18 by dann frazier <dannf at debian.org>
-diff -urpN linux-source-2.6.24.orig/kernel/sched.c linux-source-2.6.24/kernel/sched.c
---- linux-source-2.6.24.orig/kernel/sched.c 2008-10-10 00:11:28.000000000 -0600
-+++ linux-source-2.6.24/kernel/sched.c 2009-01-21 00:59:21.000000000 -0700
-@@ -4178,7 +4178,7 @@ int can_nice(const struct task_struct *p
+diff -urpN linux-source-2.6.18.orig/kernel/sched.c linux-source-2.6.18/kernel/sched.c
+--- linux-source-2.6.18.orig/kernel/sched.c 2008-12-25 14:04:12.000000000 -0700
++++ linux-source-2.6.18/kernel/sched.c 2009-01-25 20:38:31.000000000 -0700
+@@ -3973,7 +3973,7 @@ int can_nice(const struct task_struct *p
* sys_setpriority is a more generic, but much slower function that
* does similar things.
*/
@@ -24,18 +24,18 @@
{
long nice, retval;
-@@ -4442,8 +4442,8 @@ do_sched_setscheduler(pid_t pid, int pol
+@@ -4211,8 +4211,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)
+-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)
-@@ -4457,7 +4457,7 @@ sys_sched_setscheduler(pid_t pid, int po
+@@ -4226,7 +4226,7 @@ asmlinkage long sys_sched_setscheduler(p
* @pid: the pid in question.
* @param: structure containing the new RT priority.
*/
@@ -44,7 +44,7 @@
{
return do_sched_setscheduler(pid, -1, param);
}
-@@ -4466,7 +4466,7 @@ asmlinkage long sys_sched_setparam(pid_t
+@@ -4235,7 +4235,7 @@ asmlinkage long sys_sched_setparam(pid_t
* sys_sched_getscheduler - get the policy (scheduling class) of a thread
* @pid: the pid in question.
*/
@@ -52,8 +52,8 @@
+SYSCALL_DEFINE1(sched_getscheduler, pid_t, pid)
{
struct task_struct *p;
- int retval;
-@@ -4491,7 +4491,7 @@ asmlinkage long sys_sched_getscheduler(p
+ int retval = -EINVAL;
+@@ -4262,7 +4262,7 @@ out_nounlock:
* @pid: the pid in question.
* @param: structure containing the RT priority.
*/
@@ -62,7 +62,7 @@
{
struct sched_param lp;
struct task_struct *p;
-@@ -4598,8 +4598,8 @@ static int get_user_cpu_mask(unsigned lo
+@@ -4357,8 +4357,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
*/
@@ -73,7 +73,7 @@
{
cpumask_t new_mask;
int retval;
-@@ -4661,8 +4661,8 @@ out_unlock:
+@@ -4419,8 +4419,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
*/
@@ -84,16 +84,16 @@
{
int ret;
cpumask_t mask;
-@@ -4686,7 +4686,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.
+@@ -4445,7 +4445,7 @@ asmlinkage long sys_sched_getaffinity(pi
+ * to the expired array. 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();
-
-@@ -4831,7 +4831,7 @@ long __sched io_schedule_timeout(long ti
+ struct prio_array *array = current->array, *target = rq->expired;
+@@ -4625,7 +4625,7 @@ long __sched io_schedule_timeout(long ti
* this syscall returns the maximum rt_priority that can be used
* by a given scheduling class.
*/
@@ -102,7 +102,7 @@
{
int ret = -EINVAL;
-@@ -4856,7 +4856,7 @@ asmlinkage long sys_sched_get_priority_m
+@@ -4649,7 +4649,7 @@ asmlinkage long sys_sched_get_priority_m
* this syscall returns the minimum rt_priority that can be used
* by a given scheduling class.
*/
Modified: dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0017-System-call-wrappers-part-07.patch
==============================================================================
--- /dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/0017-System-call-wrappers-part-07.patch (original)
+++ dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0017-System-call-wrappers-part-07.patch Mon Feb 9 15:47:53 2009
@@ -10,12 +10,12 @@
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.24 by dann frazier <dannf at debian.org>
+Backported to Debian's 2.6.18 by dann frazier <dannf at debian.org>
-diff -urpN linux-source-2.6.24.orig/kernel/exit.c linux-source-2.6.24/kernel/exit.c
---- linux-source-2.6.24.orig/kernel/exit.c 2009-01-21 00:05:39.000000000 -0700
-+++ linux-source-2.6.24/kernel/exit.c 2009-01-21 01:00:45.000000000 -0700
-@@ -1065,7 +1065,7 @@ NORET_TYPE void complete_and_exit(struct
+diff -urpN linux-source-2.6.18.orig/kernel/exit.c linux-source-2.6.18/kernel/exit.c
+--- linux-source-2.6.18.orig/kernel/exit.c 2009-01-25 19:39:05.000000000 -0700
++++ linux-source-2.6.18/kernel/exit.c 2009-01-25 20:39:03.000000000 -0700
+@@ -977,7 +977,7 @@ NORET_TYPE void complete_and_exit(struct
EXPORT_SYMBOL(complete_and_exit);
@@ -24,7 +24,7 @@
{
do_exit((error_code&0xff)<<8);
}
-@@ -1104,7 +1104,7 @@ do_group_exit(int exit_code)
+@@ -1016,7 +1016,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.
*/
@@ -33,7 +33,7 @@
{
do_group_exit((error_code & 0xff) << 8);
/* NOTREACHED */
-@@ -1728,8 +1728,8 @@ asmlinkage long sys_waitid(int which, pi
+@@ -1625,8 +1625,8 @@ asmlinkage long sys_waitid(int which, pi
return ret;
}
@@ -44,10 +44,10 @@
{
long ret;
-diff -urpN linux-source-2.6.24.orig/kernel/kexec.c linux-source-2.6.24/kernel/kexec.c
---- linux-source-2.6.24.orig/kernel/kexec.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/kernel/kexec.c 2009-01-21 00:59:55.000000000 -0700
-@@ -922,9 +922,8 @@ struct kimage *kexec_crash_image;
+diff -urpN linux-source-2.6.18.orig/kernel/kexec.c linux-source-2.6.18/kernel/kexec.c
+--- linux-source-2.6.18.orig/kernel/kexec.c 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/kernel/kexec.c 2009-01-25 20:39:03.000000000 -0700
+@@ -911,9 +911,8 @@ struct kimage *kexec_crash_image;
*/
static int kexec_lock;
@@ -59,10 +59,10 @@
{
struct kimage **dest_image, *image;
int locked;
-diff -urpN linux-source-2.6.24.orig/kernel/sched.c linux-source-2.6.24/kernel/sched.c
---- linux-source-2.6.24.orig/kernel/sched.c 2009-01-21 00:59:21.000000000 -0700
-+++ linux-source-2.6.24/kernel/sched.c 2009-01-21 00:59:55.000000000 -0700
-@@ -4881,8 +4881,8 @@ SYSCALL_DEFINE1(sched_get_priority_min,
+diff -urpN linux-source-2.6.18.orig/kernel/sched.c linux-source-2.6.18/kernel/sched.c
+--- linux-source-2.6.18.orig/kernel/sched.c 2009-01-25 20:38:31.000000000 -0700
++++ linux-source-2.6.18/kernel/sched.c 2009-01-25 20:39:03.000000000 -0700
+@@ -4673,8 +4673,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.
*/
@@ -72,11 +72,11 @@
+ struct timespec __user *, interval)
{
struct task_struct *p;
- unsigned int time_slice;
-diff -urpN linux-source-2.6.24.orig/kernel/signal.c linux-source-2.6.24/kernel/signal.c
---- linux-source-2.6.24.orig/kernel/signal.c 2009-01-21 00:58:10.000000000 -0700
-+++ linux-source-2.6.24/kernel/signal.c 2009-01-21 00:59:55.000000000 -0700
-@@ -1947,7 +1947,7 @@ EXPORT_SYMBOL(unblock_all_signals);
+ int retval = -EINVAL;
+diff -urpN linux-source-2.6.18.orig/kernel/signal.c linux-source-2.6.18/kernel/signal.c
+--- linux-source-2.6.18.orig/kernel/signal.c 2009-01-25 20:36:32.000000000 -0700
++++ linux-source-2.6.18/kernel/signal.c 2009-01-25 20:39:03.000000000 -0700
+@@ -1919,7 +1919,7 @@ EXPORT_SYMBOL(unblock_all_signals);
* System call entry points.
*/
@@ -85,10 +85,10 @@
{
struct restart_block *restart = ¤t_thread_info()->restart_block;
return restart->fn(restart);
-diff -urpN linux-source-2.6.24.orig/kernel/sys.c linux-source-2.6.24/kernel/sys.c
---- linux-source-2.6.24.orig/kernel/sys.c 2009-01-21 00:58:10.000000000 -0700
-+++ linux-source-2.6.24/kernel/sys.c 2009-01-21 00:59:55.000000000 -0700
-@@ -131,7 +131,7 @@ out:
+diff -urpN linux-source-2.6.18.orig/kernel/sys.c linux-source-2.6.18/kernel/sys.c
+--- linux-source-2.6.18.orig/kernel/sys.c 2009-01-25 20:36:54.000000000 -0700
++++ linux-source-2.6.18/kernel/sys.c 2009-01-25 20:39:03.000000000 -0700
+@@ -459,7 +459,7 @@ out:
return error;
}
@@ -97,7 +97,7 @@
{
struct task_struct *g, *p;
struct user_struct *user;
-@@ -195,7 +195,7 @@ out:
+@@ -519,7 +519,7 @@ out:
* has been offset by 20 (ie it returns 40..1 instead of -20..19)
* to stay compatible.
*/
@@ -106,7 +106,7 @@
{
struct task_struct *g, *p;
struct user_struct *user;
-@@ -361,7 +361,8 @@ EXPORT_SYMBOL_GPL(kernel_power_off);
+@@ -678,7 +678,8 @@ EXPORT_SYMBOL_GPL(kernel_power_off);
*
* reboot doesn't sync: do that yourself before calling this.
*/
@@ -116,10 +116,10 @@
{
char buffer[256];
-diff -urpN linux-source-2.6.24.orig/net/socket.c linux-source-2.6.24/net/socket.c
---- linux-source-2.6.24.orig/net/socket.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/net/socket.c 2009-01-21 00:59:55.000000000 -0700
-@@ -1755,7 +1755,7 @@ out_put:
+diff -urpN linux-source-2.6.18.orig/net/socket.c linux-source-2.6.18/net/socket.c
+--- linux-source-2.6.18.orig/net/socket.c 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/net/socket.c 2009-01-25 20:39:03.000000000 -0700
+@@ -1729,7 +1729,7 @@ out_put:
* Shutdown a socket.
*/
Modified: dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0018-System-call-wrappers-part-08.patch
==============================================================================
--- /dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/0018-System-call-wrappers-part-08.patch (original)
+++ dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0018-System-call-wrappers-part-08.patch Mon Feb 9 15:47:53 2009
@@ -10,12 +10,12 @@
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.24 by dann frazier <dannf at debian.org>
+Backported to Debian's 2.6.18 by dann frazier <dannf at debian.org>
-diff -urpN linux-source-2.6.24.orig/kernel/exit.c linux-source-2.6.24/kernel/exit.c
---- linux-source-2.6.24.orig/kernel/exit.c 2009-01-21 01:00:45.000000000 -0700
-+++ linux-source-2.6.24/kernel/exit.c 2009-01-21 01:02:02.000000000 -0700
-@@ -1693,9 +1693,8 @@ end:
+diff -urpN linux-source-2.6.18.orig/kernel/exit.c linux-source-2.6.18/kernel/exit.c
+--- linux-source-2.6.18.orig/kernel/exit.c 2009-01-25 20:39:03.000000000 -0700
++++ linux-source-2.6.18/kernel/exit.c 2009-01-25 20:39:25.000000000 -0700
+@@ -1590,9 +1590,8 @@ end:
return retval;
}
@@ -27,7 +27,7 @@
{
long ret;
-@@ -1749,7 +1748,7 @@ SYSCALL_DEFINE4(wait4, pid_t, pid, int _
+@@ -1646,7 +1645,7 @@ SYSCALL_DEFINE4(wait4, pid_t, pid, int _
* sys_waitpid() remains for compatibility. waitpid() should be
* implemented by calling sys_wait4() from libc.a.
*/
@@ -36,11 +36,11 @@
{
return sys_wait4(pid, stat_addr, options, NULL);
}
-diff -urpN linux-source-2.6.24.orig/kernel/fork.c linux-source-2.6.24/kernel/fork.c
---- linux-source-2.6.24.orig/kernel/fork.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/kernel/fork.c 2009-01-21 01:01:27.000000000 -0700
-@@ -946,7 +946,7 @@ static void copy_flags(unsigned long clo
- clear_freeze_flag(p);
+diff -urpN linux-source-2.6.18.orig/kernel/fork.c linux-source-2.6.18/kernel/fork.c
+--- linux-source-2.6.18.orig/kernel/fork.c 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/kernel/fork.c 2009-01-25 20:39:25.000000000 -0700
+@@ -913,7 +913,7 @@ static inline void copy_flags(unsigned l
+ p->flags = new_flags;
}
-asmlinkage long sys_set_tid_address(int __user *tidptr)
@@ -48,10 +48,10 @@
{
current->clear_child_tid = tidptr;
-diff -urpN linux-source-2.6.24.orig/kernel/futex.c linux-source-2.6.24/kernel/futex.c
---- linux-source-2.6.24.orig/kernel/futex.c 2008-10-10 00:11:28.000000000 -0600
-+++ linux-source-2.6.24/kernel/futex.c 2009-01-21 01:01:27.000000000 -0700
-@@ -2092,9 +2092,9 @@ long do_futex(u32 __user *uaddr, int op,
+diff -urpN linux-source-2.6.18.orig/kernel/futex.c linux-source-2.6.18/kernel/futex.c
+--- linux-source-2.6.18.orig/kernel/futex.c 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/kernel/futex.c 2009-01-25 20:39:25.000000000 -0700
+@@ -1806,9 +1806,9 @@ long do_futex(u32 __user *uaddr, int op,
}
@@ -62,12 +62,12 @@
+ struct timespec __user *, utime, u32 __user *, uaddr2,
+ u32, val3)
{
- struct timespec ts;
- ktime_t t, *tp = NULL;
-diff -urpN linux-source-2.6.24.orig/kernel/module.c linux-source-2.6.24/kernel/module.c
---- linux-source-2.6.24.orig/kernel/module.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/kernel/module.c 2009-01-21 01:01:27.000000000 -0700
-@@ -655,8 +655,8 @@ static void wait_for_zero_refcount(struc
+ struct timespec t;
+ unsigned long timeout = MAX_SCHEDULE_TIMEOUT;
+diff -urpN linux-source-2.6.18.orig/kernel/module.c linux-source-2.6.18/kernel/module.c
+--- linux-source-2.6.18.orig/kernel/module.c 2008-12-25 14:04:12.000000000 -0700
++++ linux-source-2.6.18/kernel/module.c 2009-01-25 20:39:25.000000000 -0700
+@@ -643,8 +643,8 @@ static void wait_for_zero_refcount(struc
mutex_lock(&module_mutex);
}
@@ -78,7 +78,7 @@
{
struct module *mod;
char name[MODULE_NAME_LEN];
-@@ -2088,10 +2088,8 @@ static int __link_module(void *_mod)
+@@ -1879,10 +1879,8 @@ static int __link_module(void *_mod)
}
/* This is where the real work happens */
@@ -91,10 +91,10 @@
{
struct module *mod;
int ret = 0;
-diff -urpN linux-source-2.6.24.orig/kernel/sched.c linux-source-2.6.24/kernel/sched.c
---- linux-source-2.6.24.orig/kernel/sched.c 2009-01-21 00:59:55.000000000 -0700
-+++ linux-source-2.6.24/kernel/sched.c 2009-01-21 01:01:27.000000000 -0700
-@@ -4881,7 +4881,7 @@ SYSCALL_DEFINE1(sched_get_priority_min,
+diff -urpN linux-source-2.6.18.orig/kernel/sched.c linux-source-2.6.18/kernel/sched.c
+--- linux-source-2.6.18.orig/kernel/sched.c 2009-01-25 20:39:03.000000000 -0700
++++ linux-source-2.6.18/kernel/sched.c 2009-01-25 20:39:25.000000000 -0700
+@@ -4673,7 +4673,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.
*/
@@ -103,10 +103,10 @@
struct timespec __user *, interval)
{
struct task_struct *p;
-diff -urpN linux-source-2.6.24.orig/kernel/signal.c linux-source-2.6.24/kernel/signal.c
---- linux-source-2.6.24.orig/kernel/signal.c 2009-01-21 00:59:55.000000000 -0700
-+++ linux-source-2.6.24/kernel/signal.c 2009-01-21 01:01:27.000000000 -0700
-@@ -2000,8 +2000,8 @@ int sigprocmask(int how, sigset_t *set,
+diff -urpN linux-source-2.6.18.orig/kernel/signal.c linux-source-2.6.18/kernel/signal.c
+--- linux-source-2.6.18.orig/kernel/signal.c 2009-01-25 20:39:03.000000000 -0700
++++ linux-source-2.6.18/kernel/signal.c 2009-01-25 20:39:25.000000000 -0700
+@@ -1972,8 +1972,8 @@ int sigprocmask(int how, sigset_t *set,
return error;
}
@@ -117,7 +117,7 @@
{
int error = -EINVAL;
sigset_t old_set, new_set;
-@@ -2060,8 +2060,7 @@ out:
+@@ -2032,8 +2032,7 @@ out:
return error;
}
@@ -127,7 +127,7 @@
{
return do_sigpending(set, sigsetsize);
}
-@@ -2132,11 +2131,9 @@ int copy_siginfo_to_user(siginfo_t __use
+@@ -2102,11 +2101,9 @@ int copy_siginfo_to_user(siginfo_t __use
#endif
@@ -142,7 +142,7 @@
{
int ret, sig;
sigset_t these;
-@@ -2209,8 +2206,7 @@ sys_rt_sigtimedwait(const sigset_t __use
+@@ -2179,8 +2176,7 @@ sys_rt_sigtimedwait(const sigset_t __use
return ret;
}
Modified: dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0019-System-call-wrappers-part-09.patch
==============================================================================
--- /dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/0019-System-call-wrappers-part-09.patch (original)
+++ dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0019-System-call-wrappers-part-09.patch Mon Feb 9 15:47:53 2009
@@ -10,12 +10,12 @@
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.24 by dann frazier <dannf at debian.org>
+Backported to Debian's 2.6.18 by dann frazier <dannf at debian.org>
-diff -urpN linux-source-2.6.24.orig/fs/sync.c linux-source-2.6.24/fs/sync.c
---- linux-source-2.6.24.orig/fs/sync.c 2009-01-21 00:50:44.000000000 -0700
-+++ linux-source-2.6.24/fs/sync.c 2009-01-21 01:02:55.000000000 -0700
-@@ -36,7 +36,7 @@ static void do_sync(unsigned long wait)
+diff -urpN a/fs/buffer.c b/fs/buffer.c
+--- a/fs/buffer.c 2009-02-04 22:43:12.000000000 -0700
++++ b/fs/buffer.c 2009-02-04 22:38:46.000000000 -0700
+@@ -278,7 +278,7 @@ static void do_sync(unsigned long wait)
laptop_sync_completion();
}
@@ -24,7 +24,7 @@
{
do_sync(1);
return 0;
-@@ -118,12 +118,12 @@ static long __do_fsync(unsigned int fd,
+@@ -361,12 +361,12 @@ static long __do_fsync(unsigned int fd,
return ret;
}
@@ -39,10 +39,10 @@
{
return __do_fsync(fd, 1);
}
-diff -urpN linux-source-2.6.24.orig/kernel/signal.c linux-source-2.6.24/kernel/signal.c
---- linux-source-2.6.24.orig/kernel/signal.c 2009-01-21 01:01:27.000000000 -0700
-+++ linux-source-2.6.24/kernel/signal.c 2009-01-21 01:02:55.000000000 -0700
-@@ -2262,7 +2262,7 @@ static int do_tkill(int tgid, int pid, i
+diff -urpN a/kernel/signal.c b/kernel/signal.c
+--- a/kernel/signal.c 2009-02-04 22:43:14.000000000 -0700
++++ b/kernel/signal.c 2009-02-04 22:41:03.000000000 -0700
+@@ -2232,7 +2232,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.
*/
@@ -51,7 +51,7 @@
{
/* This is only valid for single tasks */
if (pid <= 0 || tgid <= 0)
-@@ -2274,8 +2274,7 @@ asmlinkage long sys_tgkill(int tgid, int
+@@ -2244,8 +2244,7 @@ asmlinkage long sys_tgkill(int tgid, int
/*
* Send a signal to only one task, even if it's a CLONE_THREAD task.
*/
@@ -61,7 +61,7 @@
{
/* This is only valid for single tasks */
if (pid <= 0)
-@@ -2284,8 +2283,8 @@ sys_tkill(int pid, int sig)
+@@ -2254,8 +2253,8 @@ sys_tkill(int pid, int sig)
return do_tkill(0, pid, sig);
}
@@ -72,7 +72,7 @@
{
siginfo_t info;
-@@ -2510,15 +2509,13 @@ out:
+@@ -2490,15 +2489,13 @@ out:
/*
* For backwards compatibility. Functionality superseded by sigprocmask.
*/
@@ -90,7 +90,7 @@
{
int old;
-@@ -2538,8 +2535,7 @@ sys_ssetmask(int newmask)
+@@ -2518,8 +2515,7 @@ sys_ssetmask(int newmask)
/*
* For backwards compatibility. Functionality superseded by sigaction.
*/
@@ -100,7 +100,7 @@
{
struct k_sigaction new_sa, old_sa;
int ret;
-@@ -2556,8 +2552,7 @@ sys_signal(int sig, __sighandler_t handl
+@@ -2536,8 +2532,7 @@ sys_signal(int sig, __sighandler_t handl
#ifdef __ARCH_WANT_SYS_PAUSE
Modified: dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0020-System-call-wrappers-part-10.patch
==============================================================================
--- /dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/0020-System-call-wrappers-part-10.patch (original)
+++ dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0020-System-call-wrappers-part-10.patch Mon Feb 9 15:47:53 2009
@@ -10,12 +10,12 @@
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.24 by dann frazier <dannf at debian.org>
+Backported to Debian's 2.6.18 by dann frazier <dannf at debian.org>
-diff -urpN linux-source-2.6.24.orig/fs/buffer.c linux-source-2.6.24/fs/buffer.c
---- linux-source-2.6.24.orig/fs/buffer.c 2008-10-10 00:11:28.000000000 -0600
-+++ linux-source-2.6.24/fs/buffer.c 2009-01-21 01:03:35.000000000 -0700
-@@ -3113,7 +3113,7 @@ void block_sync_page(struct page *page)
+diff -urpN linux-source-2.6.18.orig/fs/buffer.c linux-source-2.6.18/fs/buffer.c
+--- linux-source-2.6.18.orig/fs/buffer.c 2009-01-25 22:45:36.000000000 -0700
++++ linux-source-2.6.18/fs/buffer.c 2009-01-25 22:47:57.000000000 -0700
+@@ -3050,7 +3050,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.
*/
@@ -24,10 +24,10 @@
{
static int msg_count;
-diff -urpN linux-source-2.6.24.orig/fs/namespace.c linux-source-2.6.24/fs/namespace.c
---- linux-source-2.6.24.orig/fs/namespace.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/fs/namespace.c 2009-01-21 01:03:35.000000000 -0700
-@@ -628,7 +628,7 @@ static int do_umount(struct vfsmount *mn
+diff -urpN linux-source-2.6.18.orig/fs/namespace.c linux-source-2.6.18/fs/namespace.c
+--- linux-source-2.6.18.orig/fs/namespace.c 2008-12-25 14:04:14.000000000 -0700
++++ linux-source-2.6.18/fs/namespace.c 2009-01-25 22:47:57.000000000 -0700
+@@ -637,7 +637,7 @@ static int do_umount(struct vfsmount *mn
* unixes. Our API is identical to OSF/1 to avoid making a mess of AMD
*/
@@ -36,7 +36,7 @@
{
struct nameidata nd;
int retval;
-@@ -658,7 +658,7 @@ out:
+@@ -667,7 +667,7 @@ out:
/*
* The 2.0 compatible umount. No flags.
*/
@@ -45,8 +45,8 @@
{
return sys_umount(name, 0);
}
-@@ -1547,9 +1547,8 @@ struct mnt_namespace *copy_mnt_ns(unsign
- return new_ns;
+@@ -1549,9 +1549,8 @@ out:
+ return err;
}
-asmlinkage long sys_mount(char __user * dev_name, char __user * dir_name,
@@ -57,10 +57,10 @@
{
int retval;
unsigned long data_page;
-diff -urpN linux-source-2.6.24.orig/fs/open.c linux-source-2.6.24/fs/open.c
---- linux-source-2.6.24.orig/fs/open.c 2009-01-21 00:52:46.000000000 -0700
-+++ linux-source-2.6.24/fs/open.c 2009-01-21 01:03:35.000000000 -0700
-@@ -119,7 +119,7 @@ static int vfs_statfs64(struct dentry *d
+diff -urpN linux-source-2.6.18.orig/fs/open.c linux-source-2.6.18/fs/open.c
+--- linux-source-2.6.18.orig/fs/open.c 2009-01-25 21:11:25.000000000 -0700
++++ linux-source-2.6.18/fs/open.c 2009-01-25 22:47:57.000000000 -0700
+@@ -122,7 +122,7 @@ static int vfs_statfs64(struct dentry *d
return 0;
}
@@ -69,7 +69,7 @@
{
struct nameidata nd;
int error;
-@@ -135,8 +135,7 @@ asmlinkage long sys_statfs(const char __
+@@ -138,8 +138,7 @@ asmlinkage long sys_statfs(const char __
return error;
}
@@ -79,7 +79,7 @@
{
struct nameidata nd;
long error;
-@@ -154,8 +153,7 @@ asmlinkage long sys_statfs64(const char
+@@ -157,8 +156,7 @@ asmlinkage long sys_statfs64(const char
return error;
}
@@ -89,7 +89,7 @@
{
struct file * file;
struct statfs tmp;
-@@ -282,7 +280,7 @@ out:
+@@ -283,7 +281,7 @@ out:
return error;
}
@@ -98,7 +98,7 @@
{
/* on 32-bit boxen it will cut the range 2^31--2^32-1 off */
return do_sys_truncate(path, (long)length);
-@@ -331,7 +329,7 @@ out:
+@@ -332,7 +330,7 @@ out:
return error;
}
@@ -107,10 +107,10 @@
{
long ret = do_sys_ftruncate(fd, length, 1);
/* avoid REGPARM breakage on x86: */
-diff -urpN linux-source-2.6.24.orig/fs/stat.c linux-source-2.6.24/fs/stat.c
---- linux-source-2.6.24.orig/fs/stat.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/fs/stat.c 2009-01-21 01:03:35.000000000 -0700
-@@ -152,7 +152,7 @@ static int cp_old_stat(struct kstat *sta
+diff -urpN linux-source-2.6.18.orig/fs/stat.c linux-source-2.6.18/fs/stat.c
+--- linux-source-2.6.18.orig/fs/stat.c 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/fs/stat.c 2009-01-25 22:47:57.000000000 -0700
+@@ -157,7 +157,7 @@ static int cp_old_stat(struct kstat *sta
return copy_to_user(statbuf,&tmp,sizeof(tmp)) ? -EFAULT : 0;
}
Modified: dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0021-System-call-wrappers-part-11.patch
==============================================================================
--- /dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/0021-System-call-wrappers-part-11.patch (original)
+++ dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0021-System-call-wrappers-part-11.patch Mon Feb 9 15:47:53 2009
@@ -10,12 +10,12 @@
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.24 by dann frazier <dannf at debian.org>
+Adjusted to apply to Debian's 2.6.18 by dann frazier <dannf at debian.org>
-diff -urpN linux-source-2.6.24.orig/fs/open.c linux-source-2.6.24/fs/open.c
---- linux-source-2.6.24.orig/fs/open.c 2009-01-21 01:03:35.000000000 -0700
-+++ linux-source-2.6.24/fs/open.c 2009-01-21 01:04:04.000000000 -0700
-@@ -171,7 +171,7 @@ out:
+diff -urpN linux-source-2.6.18.orig/fs/open.c linux-source-2.6.18/fs/open.c
+--- linux-source-2.6.18.orig/fs/open.c 2009-01-25 22:47:57.000000000 -0700
++++ linux-source-2.6.18/fs/open.c 2009-01-25 22:48:28.000000000 -0700
+@@ -174,7 +174,7 @@ out:
return error;
}
@@ -24,10 +24,10 @@
{
struct file * file;
struct statfs64 tmp;
-diff -urpN linux-source-2.6.24.orig/fs/stat.c linux-source-2.6.24/fs/stat.c
---- linux-source-2.6.24.orig/fs/stat.c 2009-01-21 01:03:35.000000000 -0700
-+++ linux-source-2.6.24/fs/stat.c 2009-01-21 01:04:04.000000000 -0700
-@@ -162,7 +162,8 @@ SYSCALL_DEFINE2(stat, char __user *, fil
+diff -urpN linux-source-2.6.18.orig/fs/stat.c linux-source-2.6.18/fs/stat.c
+--- linux-source-2.6.18.orig/fs/stat.c 2009-01-25 22:47:57.000000000 -0700
++++ linux-source-2.6.18/fs/stat.c 2009-01-25 22:48:28.000000000 -0700
+@@ -167,7 +167,8 @@ SYSCALL_DEFINE2(stat, char __user *, fil
return error;
}
@@ -37,7 +37,7 @@
{
struct kstat stat;
int error = vfs_lstat_fd(AT_FDCWD, filename, &stat);
-@@ -172,7 +173,8 @@ asmlinkage long sys_lstat(char __user *
+@@ -177,7 +178,8 @@ asmlinkage long sys_lstat(char __user *
return error;
}
@@ -47,7 +47,7 @@
{
struct kstat stat;
int error = vfs_fstat(fd, &stat);
-@@ -235,7 +237,7 @@ static int cp_new_stat(struct kstat *sta
+@@ -238,7 +240,7 @@ static int cp_new_stat(struct kstat *sta
return copy_to_user(statbuf,&tmp,sizeof(tmp)) ? -EFAULT : 0;
}
@@ -56,7 +56,7 @@
{
struct kstat stat;
int error = vfs_stat_fd(AT_FDCWD, filename, &stat);
-@@ -246,7 +248,7 @@ asmlinkage long sys_newstat(char __user
+@@ -249,7 +251,7 @@ asmlinkage long sys_newstat(char __user
return error;
}
@@ -65,7 +65,7 @@
{
struct kstat stat;
int error = vfs_lstat_fd(AT_FDCWD, filename, &stat);
-@@ -280,7 +282,7 @@ out:
+@@ -283,7 +285,7 @@ out:
}
#endif
@@ -74,7 +74,7 @@
{
struct kstat stat;
int error = vfs_fstat(fd, &stat);
-@@ -364,7 +366,7 @@ static long cp_new_stat64(struct kstat *
+@@ -365,7 +367,7 @@ static long cp_new_stat64(struct kstat *
return copy_to_user(statbuf,&tmp,sizeof(tmp)) ? -EFAULT : 0;
}
@@ -83,7 +83,7 @@
{
struct kstat stat;
int error = vfs_stat(filename, &stat);
-@@ -374,7 +376,8 @@ asmlinkage long sys_stat64(char __user *
+@@ -375,7 +377,8 @@ asmlinkage long sys_stat64(char __user *
return error;
}
@@ -93,7 +93,7 @@
{
struct kstat stat;
int error = vfs_lstat(filename, &stat);
-@@ -384,7 +387,8 @@ asmlinkage long sys_lstat64(char __user
+@@ -385,7 +388,8 @@ asmlinkage long sys_lstat64(char __user
return error;
}
@@ -103,10 +103,10 @@
{
struct kstat stat;
int error = vfs_fstat(fd, &stat);
-diff -urpN linux-source-2.6.24.orig/fs/super.c linux-source-2.6.24/fs/super.c
---- linux-source-2.6.24.orig/fs/super.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/fs/super.c 2009-01-21 01:04:04.000000000 -0700
-@@ -530,7 +530,7 @@ rescan:
+diff -urpN linux-source-2.6.18.orig/fs/super.c linux-source-2.6.18/fs/super.c
+--- linux-source-2.6.18.orig/fs/super.c 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/fs/super.c 2009-01-25 22:48:28.000000000 -0700
+@@ -483,7 +483,7 @@ rescan:
return NULL;
}
Modified: dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0022-System-call-wrappers-part-12.patch
==============================================================================
--- /dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/0022-System-call-wrappers-part-12.patch (original)
+++ dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0022-System-call-wrappers-part-12.patch Mon Feb 9 15:47:53 2009
@@ -10,12 +10,12 @@
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.24 by dann frazier <dannf at debian.org>
+Backported to Debian's 2.6.18 by dann frazier <dannf at debian.org>
-diff -urpN linux-source-2.6.24.orig/fs/xattr.c linux-source-2.6.24/fs/xattr.c
---- linux-source-2.6.24.orig/fs/xattr.c 2009-01-21 00:11:43.000000000 -0700
-+++ linux-source-2.6.24/fs/xattr.c 2009-01-21 01:08:29.000000000 -0700
-@@ -225,9 +225,9 @@ setxattr(struct dentry *d, char __user *
+diff -urpN linux-source-2.6.18.orig/fs/xattr.c linux-source-2.6.18/fs/xattr.c
+--- linux-source-2.6.18.orig/fs/xattr.c 2009-01-25 21:05:36.000000000 -0700
++++ linux-source-2.6.18/fs/xattr.c 2009-01-25 22:49:28.000000000 -0700
+@@ -200,9 +200,9 @@ setxattr(struct dentry *d, char __user *
return error;
}
@@ -28,7 +28,7 @@
{
struct nameidata nd;
int error;
-@@ -240,9 +240,9 @@ sys_setxattr(char __user *path, char __u
+@@ -215,9 +215,9 @@ sys_setxattr(char __user *path, char __u
return error;
}
@@ -41,7 +41,7 @@
{
struct nameidata nd;
int error;
-@@ -255,9 +255,8 @@ sys_lsetxattr(char __user *path, char __
+@@ -230,9 +230,8 @@ sys_lsetxattr(char __user *path, char __
return error;
}
@@ -53,7 +53,7 @@
{
struct file *f;
struct dentry *dentry;
-@@ -310,9 +309,8 @@ getxattr(struct dentry *d, char __user *
+@@ -285,9 +284,8 @@ getxattr(struct dentry *d, char __user *
return error;
}
@@ -65,7 +65,7 @@
{
struct nameidata nd;
ssize_t error;
-@@ -325,9 +323,8 @@ sys_getxattr(char __user *path, char __u
+@@ -300,9 +298,8 @@ sys_getxattr(char __user *path, char __u
return error;
}
@@ -77,7 +77,7 @@
{
struct nameidata nd;
ssize_t error;
-@@ -340,8 +337,8 @@ sys_lgetxattr(char __user *path, char __
+@@ -315,8 +312,8 @@ sys_lgetxattr(char __user *path, char __
return error;
}
@@ -88,7 +88,7 @@
{
struct file *f;
ssize_t error = -EBADF;
-@@ -385,8 +382,8 @@ listxattr(struct dentry *d, char __user
+@@ -370,8 +367,8 @@ out:
return error;
}
@@ -99,7 +99,7 @@
{
struct nameidata nd;
ssize_t error;
-@@ -399,8 +396,8 @@ sys_listxattr(char __user *path, char __
+@@ -384,8 +381,8 @@ sys_listxattr(char __user *path, char __
return error;
}
@@ -110,7 +110,7 @@
{
struct nameidata nd;
ssize_t error;
-@@ -413,8 +410,7 @@ sys_llistxattr(char __user *path, char _
+@@ -398,8 +395,7 @@ sys_llistxattr(char __user *path, char _
return error;
}
@@ -120,7 +120,7 @@
{
struct file *f;
ssize_t error = -EBADF;
-@@ -446,8 +442,8 @@ removexattr(struct dentry *d, char __use
+@@ -430,8 +426,8 @@ removexattr(struct dentry *d, char __use
return vfs_removexattr(d, kname);
}
Modified: dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0023-System-call-wrappers-part-13.patch
==============================================================================
--- /dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/0023-System-call-wrappers-part-13.patch (original)
+++ dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0023-System-call-wrappers-part-13.patch Mon Feb 9 15:47:53 2009
@@ -10,12 +10,12 @@
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.24 by dann frazier <dannf at debian.org>
+Backported to Debian's 2.6.18 by dann frazier <dannf at debian.org>
-diff -urpN linux-source-2.6.24.orig/fs/xattr.c linux-source-2.6.24/fs/xattr.c
---- linux-source-2.6.24.orig/fs/xattr.c 2009-01-21 01:08:29.000000000 -0700
-+++ linux-source-2.6.24/fs/xattr.c 2009-01-21 01:09:53.000000000 -0700
-@@ -456,8 +456,8 @@ SYSCALL_DEFINE2(removexattr, char __user
+diff -urpN linux-source-2.6.18.orig/fs/xattr.c linux-source-2.6.18/fs/xattr.c
+--- linux-source-2.6.18.orig/fs/xattr.c 2009-01-25 22:49:28.000000000 -0700
++++ linux-source-2.6.18/fs/xattr.c 2009-01-25 22:52:45.000000000 -0700
+@@ -440,8 +440,8 @@ SYSCALL_DEFINE2(removexattr, char __user
return error;
}
@@ -26,7 +26,7 @@
{
struct nameidata nd;
int error;
-@@ -470,8 +470,7 @@ sys_lremovexattr(char __user *path, char
+@@ -454,8 +454,7 @@ sys_lremovexattr(char __user *path, char
return error;
}
@@ -36,24 +36,24 @@
{
struct file *f;
struct dentry *dentry;
-diff -urpN linux-source-2.6.24.orig/mm/fremap.c linux-source-2.6.24/mm/fremap.c
---- linux-source-2.6.24.orig/mm/fremap.c 2008-10-10 00:11:27.000000000 -0600
-+++ linux-source-2.6.24/mm/fremap.c 2009-01-21 01:09:12.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.
+diff -urpN linux-source-2.6.18.orig/mm/fremap.c linux-source-2.6.18/mm/fremap.c
+--- linux-source-2.6.18.orig/mm/fremap.c 2008-12-25 14:04:13.000000000 -0700
++++ linux-source-2.6.18/mm/fremap.c 2009-01-25 22:53:25.000000000 -0700
+@@ -146,8 +146,8 @@ out:
+ * 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)
+- 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)
++ 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.24.orig/mm/mlock.c linux-source-2.6.24/mm/mlock.c
---- linux-source-2.6.24.orig/mm/mlock.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/mm/mlock.c 2009-01-21 01:09:12.000000000 -0700
-@@ -132,7 +132,7 @@ static int do_mlock(unsigned long start,
+diff -urpN linux-source-2.6.18.orig/mm/mlock.c linux-source-2.6.18/mm/mlock.c
+--- linux-source-2.6.18.orig/mm/mlock.c 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/mm/mlock.c 2009-01-25 22:52:45.000000000 -0700
+@@ -121,7 +121,7 @@ static int do_mlock(unsigned long start,
return error;
}
@@ -62,7 +62,7 @@
{
unsigned long locked;
unsigned long lock_limit;
-@@ -158,7 +158,7 @@ asmlinkage long sys_mlock(unsigned long
+@@ -147,7 +147,7 @@ asmlinkage long sys_mlock(unsigned long
return error;
}
@@ -71,10 +71,10 @@
{
int ret;
-diff -urpN linux-source-2.6.24.orig/mm/mmap.c linux-source-2.6.24/mm/mmap.c
---- linux-source-2.6.24.orig/mm/mmap.c 2009-01-21 00:05:39.000000000 -0700
-+++ linux-source-2.6.24/mm/mmap.c 2009-01-21 01:09:12.000000000 -0700
-@@ -233,7 +233,7 @@ static struct vm_area_struct *remove_vma
+diff -urpN linux-source-2.6.18.orig/mm/mmap.c linux-source-2.6.18/mm/mmap.c
+--- linux-source-2.6.18.orig/mm/mmap.c 2009-01-25 21:05:36.000000000 -0700
++++ linux-source-2.6.18/mm/mmap.c 2009-01-25 22:52:45.000000000 -0700
+@@ -226,7 +226,7 @@ static struct vm_area_struct *remove_vma
return next;
}
@@ -83,7 +83,7 @@
{
unsigned long rlim, retval;
unsigned long newbrk, oldbrk;
-@@ -1894,7 +1894,7 @@ int do_munmap(struct mm_struct *mm, unsi
+@@ -1839,7 +1839,7 @@ int do_munmap(struct mm_struct *mm, unsi
EXPORT_SYMBOL(do_munmap);
@@ -92,10 +92,10 @@
{
int ret;
struct mm_struct *mm = current->mm;
-diff -urpN linux-source-2.6.24.orig/mm/mprotect.c linux-source-2.6.24/mm/mprotect.c
---- linux-source-2.6.24.orig/mm/mprotect.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/mm/mprotect.c 2009-01-21 01:09:12.000000000 -0700
-@@ -211,8 +211,8 @@ fail:
+diff -urpN linux-source-2.6.18.orig/mm/mprotect.c linux-source-2.6.18/mm/mprotect.c
+--- linux-source-2.6.18.orig/mm/mprotect.c 2008-12-25 14:04:13.000000000 -0700
++++ linux-source-2.6.18/mm/mprotect.c 2009-01-25 22:52:45.000000000 -0700
+@@ -203,8 +203,8 @@ fail:
return error;
}
@@ -106,10 +106,10 @@
{
unsigned long vm_flags, nstart, end, tmp, reqprot;
struct vm_area_struct *vma, *prev;
-diff -urpN linux-source-2.6.24.orig/mm/mremap.c linux-source-2.6.24/mm/mremap.c
---- linux-source-2.6.24.orig/mm/mremap.c 2009-01-21 00:05:39.000000000 -0700
-+++ linux-source-2.6.24/mm/mremap.c 2009-01-21 01:09:12.000000000 -0700
-@@ -412,9 +412,9 @@ out_nc:
+diff -urpN linux-source-2.6.18.orig/mm/mremap.c linux-source-2.6.18/mm/mremap.c
+--- linux-source-2.6.18.orig/mm/mremap.c 2009-01-25 21:05:36.000000000 -0700
++++ linux-source-2.6.18/mm/mremap.c 2009-01-25 22:52:45.000000000 -0700
+@@ -402,9 +402,9 @@ out_nc:
return ret;
}
@@ -122,22 +122,22 @@
{
unsigned long ret;
-diff -urpN linux-source-2.6.24.orig/mm/msync.c linux-source-2.6.24/mm/msync.c
---- linux-source-2.6.24.orig/mm/msync.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/mm/msync.c 2009-01-21 01:09:12.000000000 -0700
-@@ -28,7 +28,7 @@
- * So by _not_ starting I/O in MS_ASYNC we provide complete flexibility to
- * applications.
- */
+diff -urpN linux-source-2.6.18.orig/mm/msync.c linux-source-2.6.18/mm/msync.c
+--- linux-source-2.6.18.orig/mm/msync.c 2008-12-25 14:04:13.000000000 -0700
++++ linux-source-2.6.18/mm/msync.c 2009-01-25 22:53:54.000000000 -0700
+@@ -143,7 +143,7 @@ static int msync_interval(struct vm_area
+ return 0;
+ }
+
-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.24.orig/mm/nommu.c linux-source-2.6.24/mm/nommu.c
---- linux-source-2.6.24.orig/mm/nommu.c 2009-01-21 00:05:39.000000000 -0700
-+++ linux-source-2.6.24/mm/nommu.c 2009-01-21 01:09:12.000000000 -0700
-@@ -295,7 +295,7 @@ EXPORT_SYMBOL(vm_insert_page);
+diff -urpN linux-source-2.6.18.orig/mm/nommu.c linux-source-2.6.18/mm/nommu.c
+--- linux-source-2.6.18.orig/mm/nommu.c 2009-01-25 21:05:36.000000000 -0700
++++ linux-source-2.6.18/mm/nommu.c 2009-01-25 22:52:45.000000000 -0700
+@@ -243,7 +243,7 @@ void vunmap(void *addr)
* to a regular file. in this case, the unmapping will need
* to invoke file system routines that need the global lock.
*/
@@ -146,25 +146,12 @@
{
struct mm_struct *mm = current->mm;
-@@ -1099,7 +1099,7 @@ int do_munmap(struct mm_struct *mm, unsi
+@@ -973,7 +973,7 @@ void exit_mmap(struct mm_struct * mm)
+ }
}
- 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;
-@@ -1190,9 +1190,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;
-
Modified: dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0024-System-call-wrappers-part-14.patch
==============================================================================
--- /dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/0024-System-call-wrappers-part-14.patch (original)
+++ dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0024-System-call-wrappers-part-14.patch Mon Feb 9 15:47:53 2009
@@ -10,12 +10,12 @@
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.24 by dann frazier <dannf at debian.org>
+Adjusted to apply to Debian's 2.6.18 by dann frazier <dannf at debian.org>
-diff -urpN linux-source-2.6.24.orig/fs/namei.c linux-source-2.6.24/fs/namei.c
---- linux-source-2.6.24.orig/fs/namei.c 2008-10-10 00:11:30.000000000 -0600
-+++ linux-source-2.6.24/fs/namei.c 2009-01-21 01:10:50.000000000 -0700
-@@ -2007,7 +2007,7 @@ out:
+diff -urpN linux-source-2.6.18.orig/fs/namei.c linux-source-2.6.18/fs/namei.c
+--- linux-source-2.6.18.orig/fs/namei.c 2008-12-25 14:04:14.000000000 -0700
++++ linux-source-2.6.18/fs/namei.c 2009-01-25 23:02:41.000000000 -0700
+@@ -1890,7 +1890,7 @@ out:
return error;
}
@@ -24,7 +24,7 @@
{
return sys_mknodat(AT_FDCWD, filename, mode, dev);
}
-@@ -2273,7 +2273,7 @@ asmlinkage long sys_unlinkat(int dfd, co
+@@ -2154,7 +2154,7 @@ asmlinkage long sys_unlinkat(int dfd, co
return do_unlinkat(dfd, pathname);
}
@@ -33,7 +33,7 @@
{
return do_unlinkat(AT_FDCWD, pathname);
}
-@@ -2336,7 +2336,7 @@ out_putname:
+@@ -2214,7 +2214,7 @@ out:
return error;
}
@@ -42,7 +42,7 @@
{
return sys_symlinkat(oldname, AT_FDCWD, newname);
}
-@@ -2433,7 +2433,7 @@ exit:
+@@ -2310,7 +2310,7 @@ exit:
return error;
}
@@ -51,10 +51,10 @@
{
return sys_linkat(AT_FDCWD, oldname, AT_FDCWD, newname, 0);
}
-diff -urpN linux-source-2.6.24.orig/fs/namespace.c linux-source-2.6.24/fs/namespace.c
---- linux-source-2.6.24.orig/fs/namespace.c 2009-01-21 01:03:35.000000000 -0700
-+++ linux-source-2.6.24/fs/namespace.c 2009-01-21 01:10:50.000000000 -0700
-@@ -1682,8 +1682,8 @@ static void chroot_fs_refs(struct nameid
+diff -urpN linux-source-2.6.18.orig/fs/namespace.c linux-source-2.6.18/fs/namespace.c
+--- linux-source-2.6.18.orig/fs/namespace.c 2009-01-25 22:47:57.000000000 -0700
++++ linux-source-2.6.18/fs/namespace.c 2009-01-25 23:02:41.000000000 -0700
+@@ -1684,8 +1684,8 @@ static void chroot_fs_refs(struct nameid
* though, so you may need to say mount --bind /nfs/my_root /nfs/my_root
* first.
*/
@@ -65,10 +65,10 @@
{
struct vfsmount *tmp;
struct nameidata new_nd, old_nd, parent_nd, root_parent, user_nd;
-diff -urpN linux-source-2.6.24.orig/fs/open.c linux-source-2.6.24/fs/open.c
---- linux-source-2.6.24.orig/fs/open.c 2009-01-21 01:04:04.000000000 -0700
-+++ linux-source-2.6.24/fs/open.c 2009-01-21 01:10:50.000000000 -0700
-@@ -547,7 +547,7 @@ out:
+diff -urpN linux-source-2.6.18.orig/fs/open.c linux-source-2.6.18/fs/open.c
+--- linux-source-2.6.18.orig/fs/open.c 2009-01-25 22:48:28.000000000 -0700
++++ linux-source-2.6.18/fs/open.c 2009-01-25 23:02:41.000000000 -0700
+@@ -607,7 +607,7 @@ out:
return error;
}
@@ -77,10 +77,10 @@
{
struct nameidata nd;
int error;
-diff -urpN linux-source-2.6.24.orig/mm/madvise.c linux-source-2.6.24/mm/madvise.c
---- linux-source-2.6.24.orig/mm/madvise.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/mm/madvise.c 2009-01-21 01:10:50.000000000 -0700
-@@ -281,7 +281,7 @@ madvise_vma(struct vm_area_struct *vma,
+diff -urpN linux-source-2.6.18.orig/mm/madvise.c linux-source-2.6.18/mm/madvise.c
+--- linux-source-2.6.18.orig/mm/madvise.c 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/mm/madvise.c 2009-01-25 23:02:41.000000000 -0700
+@@ -253,7 +253,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.
*/
@@ -89,10 +89,10 @@
{
unsigned long end, tmp;
struct vm_area_struct * vma, *prev;
-diff -urpN linux-source-2.6.24.orig/mm/mincore.c linux-source-2.6.24/mm/mincore.c
---- linux-source-2.6.24.orig/mm/mincore.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/mm/mincore.c 2009-01-21 01:10:50.000000000 -0700
-@@ -177,8 +177,8 @@ none_mapped:
+diff -urpN linux-source-2.6.18.orig/mm/mincore.c linux-source-2.6.18/mm/mincore.c
+--- linux-source-2.6.18.orig/mm/mincore.c 2008-12-25 14:04:13.000000000 -0700
++++ linux-source-2.6.18/mm/mincore.c 2009-01-25 23:02:41.000000000 -0700
+@@ -109,8 +109,8 @@ static long do_mincore(unsigned long add
* mapped
* -EAGAIN - A kernel resource was temporarily unavailable.
*/
@@ -103,10 +103,10 @@
{
long retval;
unsigned long pages;
-diff -urpN linux-source-2.6.24.orig/mm/mlock.c linux-source-2.6.24/mm/mlock.c
---- linux-source-2.6.24.orig/mm/mlock.c 2009-01-21 01:09:12.000000000 -0700
-+++ linux-source-2.6.24/mm/mlock.c 2009-01-21 01:10:50.000000000 -0700
-@@ -195,7 +195,7 @@ out:
+diff -urpN linux-source-2.6.18.orig/mm/mlock.c linux-source-2.6.18/mm/mlock.c
+--- linux-source-2.6.18.orig/mm/mlock.c 2009-01-25 22:52:45.000000000 -0700
++++ linux-source-2.6.18/mm/mlock.c 2009-01-25 23:02:41.000000000 -0700
+@@ -184,7 +184,7 @@ out:
return 0;
}
@@ -115,7 +115,7 @@
{
unsigned long lock_limit;
int ret = -EINVAL;
-@@ -221,7 +221,7 @@ out:
+@@ -210,7 +210,7 @@ out:
return ret;
}
Modified: dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0025-System-call-wrappers-part-15.patch
==============================================================================
--- /dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/0025-System-call-wrappers-part-15.patch (original)
+++ dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0025-System-call-wrappers-part-15.patch Mon Feb 9 15:47:53 2009
@@ -10,12 +10,12 @@
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.24 by dann frazier <dannf at debian.org>
+Backported to Debian's 2.6.18 by dann frazier <dannf at debian.org>
-diff -urpN linux-source-2.6.24.orig/fs/fcntl.c linux-source-2.6.24/fs/fcntl.c
---- linux-source-2.6.24.orig/fs/fcntl.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/fs/fcntl.c 2009-01-21 01:11:17.000000000 -0700
-@@ -137,7 +137,7 @@ static int dupfd(struct file *file, unsi
+diff -urpN linux-source-2.6.18.orig/fs/fcntl.c linux-source-2.6.18/fs/fcntl.c
+--- linux-source-2.6.18.orig/fs/fcntl.c 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/fs/fcntl.c 2009-01-25 23:03:21.000000000 -0700
+@@ -134,7 +134,7 @@ static int dupfd(struct file *file, unsi
return fd;
}
@@ -24,7 +24,7 @@
{
int err = -EBADF;
struct file * file, *tofree;
-@@ -193,7 +193,7 @@ out_fput:
+@@ -190,7 +190,7 @@ out_fput:
goto out;
}
@@ -33,7 +33,7 @@
{
int ret = -EBADF;
struct file * file = fget(fildes);
-@@ -387,7 +387,7 @@ static long do_fcntl(int fd, unsigned in
+@@ -351,7 +351,7 @@ static long do_fcntl(int fd, unsigned in
return err;
}
@@ -42,7 +42,7 @@
{
struct file *filp;
long err = -EBADF;
-@@ -410,7 +410,8 @@ out:
+@@ -374,7 +374,8 @@ out:
}
#if BITS_PER_LONG == 32
@@ -52,10 +52,10 @@
{
struct file * filp;
long err;
-diff -urpN linux-source-2.6.24.orig/fs/ioctl.c linux-source-2.6.24/fs/ioctl.c
---- linux-source-2.6.24.orig/fs/ioctl.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/fs/ioctl.c 2009-01-21 01:11:17.000000000 -0700
-@@ -154,7 +154,7 @@ int vfs_ioctl(struct file *filp, unsigne
+diff -urpN linux-source-2.6.18.orig/fs/ioctl.c linux-source-2.6.18/fs/ioctl.c
+--- linux-source-2.6.18.orig/fs/ioctl.c 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/fs/ioctl.c 2009-01-25 23:03:21.000000000 -0700
+@@ -156,7 +156,7 @@ int vfs_ioctl(struct file *filp, unsigne
return error;
}
@@ -64,10 +64,10 @@
{
struct file * filp;
int error = -EBADF;
-diff -urpN linux-source-2.6.24.orig/fs/namei.c linux-source-2.6.24/fs/namei.c
---- linux-source-2.6.24.orig/fs/namei.c 2009-01-21 01:10:50.000000000 -0700
-+++ linux-source-2.6.24/fs/namei.c 2009-01-21 01:11:17.000000000 -0700
-@@ -2681,7 +2681,7 @@ asmlinkage long sys_renameat(int olddfd,
+diff -urpN linux-source-2.6.18.orig/fs/namei.c linux-source-2.6.18/fs/namei.c
+--- linux-source-2.6.18.orig/fs/namei.c 2009-01-25 23:02:41.000000000 -0700
++++ linux-source-2.6.18/fs/namei.c 2009-01-25 23:03:21.000000000 -0700
+@@ -2558,7 +2558,7 @@ asmlinkage long sys_renameat(int olddfd,
return error;
}
@@ -76,10 +76,10 @@
{
return sys_renameat(AT_FDCWD, oldname, AT_FDCWD, newname);
}
-diff -urpN linux-source-2.6.24.orig/fs/open.c linux-source-2.6.24/fs/open.c
---- linux-source-2.6.24.orig/fs/open.c 2009-01-21 01:10:50.000000000 -0700
-+++ linux-source-2.6.24/fs/open.c 2009-01-21 01:11:17.000000000 -0700
-@@ -573,7 +573,7 @@ out:
+diff -urpN linux-source-2.6.18.orig/fs/open.c linux-source-2.6.18/fs/open.c
+--- linux-source-2.6.18.orig/fs/open.c 2009-01-25 23:02:41.000000000 -0700
++++ linux-source-2.6.18/fs/open.c 2009-01-25 23:03:21.000000000 -0700
+@@ -633,7 +633,7 @@ out:
return error;
}
@@ -88,7 +88,7 @@
{
struct inode * inode;
struct dentry * dentry;
-@@ -645,7 +645,7 @@ out:
+@@ -705,7 +705,7 @@ out:
return error;
}
Modified: dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0026-System-call-wrappers-part-16.patch
==============================================================================
--- /dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/0026-System-call-wrappers-part-16.patch (original)
+++ dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0026-System-call-wrappers-part-16.patch Mon Feb 9 15:47:53 2009
@@ -10,12 +10,12 @@
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.24 by dann frazier <dannf at debian.org>
+Adjusted to apply to Debian's 2.6.18 by dann frazier <dannf at debian.org>
-diff -urpN linux-source-2.6.24.orig/fs/aio.c linux-source-2.6.24/fs/aio.c
---- linux-source-2.6.24.orig/fs/aio.c 2008-10-10 00:11:28.000000000 -0600
-+++ linux-source-2.6.24/fs/aio.c 2009-01-21 01:11:46.000000000 -0700
-@@ -1247,7 +1247,7 @@ static void io_destroy(struct kioctx *io
+diff -urpN a/fs/aio.c b/fs/aio.c
+--- a/fs/aio.c 2006-09-19 21:42:06.000000000 -0600
++++ b/fs/aio.c 2009-01-28 00:10:14.000000000 -0700
+@@ -1251,7 +1251,7 @@ static void io_destroy(struct kioctx *io
* pointer is passed for ctxp. Will fail with -ENOSYS if not
* implemented.
*/
@@ -24,7 +24,7 @@
{
struct kioctx *ioctx = NULL;
unsigned long ctx;
-@@ -1285,7 +1285,7 @@ out:
+@@ -1289,7 +1289,7 @@ out:
* implemented. May fail with -EFAULT if the context pointed to
* is invalid.
*/
@@ -33,7 +33,7 @@
{
struct kioctx *ioctx = lookup_ioctx(ctx);
if (likely(NULL != ioctx)) {
-@@ -1628,8 +1628,8 @@ out_put_req:
+@@ -1559,8 +1559,8 @@ out_put_req:
* are available to queue any iocbs. Will return 0 if nr is 0. Will
* fail with -ENOSYS if not implemented.
*/
@@ -44,7 +44,7 @@
{
struct kioctx *ctx;
long ret = 0;
-@@ -1703,8 +1703,8 @@ static struct kiocb *lookup_kiocb(struct
+@@ -1634,8 +1634,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.
*/
@@ -55,7 +55,7 @@
{
int (*cancel)(struct kiocb *iocb, struct io_event *res);
struct kioctx *ctx;
-@@ -1765,11 +1765,11 @@ asmlinkage long sys_io_cancel(aio_contex
+@@ -1696,11 +1696,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.
*/
@@ -72,10 +72,10 @@
{
struct kioctx *ioctx = lookup_ioctx(ctx_id);
long ret = -EINVAL;
-diff -urpN linux-source-2.6.24.orig/fs/locks.c linux-source-2.6.24/fs/locks.c
---- linux-source-2.6.24.orig/fs/locks.c 2008-10-10 00:11:29.000000000 -0600
-+++ linux-source-2.6.24/fs/locks.c 2009-01-21 01:11:46.000000000 -0700
-@@ -1571,7 +1571,7 @@ EXPORT_SYMBOL(flock_lock_file_wait);
+diff -urpN a/fs/locks.c b/fs/locks.c
+--- a/fs/locks.c 2009-01-28 00:09:25.000000000 -0700
++++ b/fs/locks.c 2009-01-28 00:10:14.000000000 -0700
+@@ -1566,7 +1566,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.
*/
@@ -84,10 +84,10 @@
{
struct file *filp;
struct file_lock *lock;
-diff -urpN linux-source-2.6.24.orig/fs/open.c linux-source-2.6.24/fs/open.c
---- linux-source-2.6.24.orig/fs/open.c 2009-01-21 01:11:17.000000000 -0700
-+++ linux-source-2.6.24/fs/open.c 2009-01-21 01:11:46.000000000 -0700
-@@ -1102,7 +1102,7 @@ asmlinkage long sys_openat(int dfd, cons
+diff -urpN a/fs/open.c b/fs/open.c
+--- a/fs/open.c 2009-01-28 00:09:29.000000000 -0700
++++ b/fs/open.c 2009-01-28 00:10:14.000000000 -0700
+@@ -1146,7 +1146,7 @@ asmlinkage long sys_openat(int dfd, cons
* For backward compatibility? Maybe this should be moved
* into arch/i386 instead?
*/
@@ -96,10 +96,10 @@
{
return sys_open(pathname, O_CREAT | O_WRONLY | O_TRUNC, mode);
}
-diff -urpN linux-source-2.6.24.orig/fs/read_write.c linux-source-2.6.24/fs/read_write.c
---- linux-source-2.6.24.orig/fs/read_write.c 2009-01-21 00:50:44.000000000 -0700
-+++ linux-source-2.6.24/fs/read_write.c 2009-01-21 01:11:46.000000000 -0700
-@@ -824,7 +824,7 @@ out:
+diff -urpN a/fs/read_write.c b/fs/read_write.c
+--- a/fs/read_write.c 2009-01-28 00:09:28.000000000 -0700
++++ b/fs/read_write.c 2009-01-28 00:10:14.000000000 -0700
+@@ -747,7 +747,7 @@ out:
return retval;
}
@@ -108,7 +108,7 @@
{
loff_t pos;
off_t off;
-@@ -843,7 +843,7 @@ asmlinkage long sys_sendfile(int out_fd,
+@@ -766,7 +766,7 @@ asmlinkage long sys_sendfile(int out_fd,
return do_sendfile(out_fd, in_fd, NULL, count, 0);
}
@@ -117,10 +117,10 @@
{
loff_t pos;
ssize_t ret;
-diff -urpN linux-source-2.6.24.orig/fs/stat.c linux-source-2.6.24/fs/stat.c
---- linux-source-2.6.24.orig/fs/stat.c 2009-01-21 01:04:04.000000000 -0700
-+++ linux-source-2.6.24/fs/stat.c 2009-01-21 01:11:46.000000000 -0700
-@@ -319,8 +319,8 @@ asmlinkage long sys_readlinkat(int dfd,
+diff -urpN a/fs/stat.c b/fs/stat.c
+--- a/fs/stat.c 2009-01-28 00:09:29.000000000 -0700
++++ b/fs/stat.c 2009-01-28 00:10:14.000000000 -0700
+@@ -322,8 +322,8 @@ asmlinkage long sys_readlinkat(int dfd,
return error;
}
Modified: dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0027-System-call-wrappers-part-17.patch
==============================================================================
--- /dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/0027-System-call-wrappers-part-17.patch (original)
+++ dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0027-System-call-wrappers-part-17.patch Mon Feb 9 15:47:53 2009
@@ -10,12 +10,12 @@
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.24 by dann frazier <dannf at debian.org>
+Adjusted to apply to Debian's 2.6.18 by dann frazier <dannf at debian.org>
-diff -urpN linux-source-2.6.24.orig/fs/open.c linux-source-2.6.24/fs/open.c
---- linux-source-2.6.24.orig/fs/open.c 2009-01-21 01:11:46.000000000 -0700
-+++ linux-source-2.6.24/fs/open.c 2009-01-21 01:12:18.000000000 -0700
-@@ -490,7 +490,7 @@ out:
+diff -urpN a/fs/open.c b/fs/open.c
+--- a/fs/open.c 2009-01-28 00:13:00.000000000 -0700
++++ b/fs/open.c 2009-01-28 00:13:16.000000000 -0700
+@@ -551,7 +551,7 @@ asmlinkage long sys_faccessat(int dfd, c
return res;
}
@@ -24,7 +24,7 @@
{
return sys_faccessat(AT_FDCWD, filename, mode);
}
-@@ -686,7 +686,7 @@ out:
+@@ -745,7 +745,7 @@ out:
return error;
}
@@ -33,7 +33,7 @@
{
struct nameidata nd;
int error;
-@@ -720,7 +720,7 @@ out:
+@@ -778,7 +778,7 @@ out:
return error;
}
@@ -42,7 +42,7 @@
{
struct nameidata nd;
int error;
-@@ -734,8 +734,7 @@ out:
+@@ -791,8 +791,7 @@ asmlinkage long sys_lchown(const char __
return error;
}
@@ -52,7 +52,7 @@
{
struct file * file;
int error = -EBADF;
-@@ -1068,7 +1067,7 @@ long do_sys_open(int dfd, const char __u
+@@ -1112,7 +1111,7 @@ long do_sys_open(int dfd, const char __u
return fd;
}
@@ -61,7 +61,7 @@
{
long ret;
-@@ -1138,7 +1137,7 @@ EXPORT_SYMBOL(filp_close);
+@@ -1182,7 +1181,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.
*/
@@ -70,7 +70,7 @@
{
struct file * filp;
struct files_struct *files = current->files;
-@@ -1171,14 +1170,13 @@ out_unlock:
+@@ -1205,14 +1204,13 @@ out_unlock:
spin_unlock(&files->file_lock);
return -EBADF;
}
@@ -85,11 +85,11 @@
+SYSCALL_DEFINE0(vhangup)
{
if (capable(CAP_SYS_TTY_CONFIG)) {
- /* XXX: this needs locking */
-diff -urpN linux-source-2.6.24.orig/kernel/uid16.c linux-source-2.6.24/kernel/uid16.c
---- linux-source-2.6.24.orig/kernel/uid16.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/kernel/uid16.c 2009-01-21 01:12:18.000000000 -0700
-@@ -17,7 +17,7 @@
+ tty_vhangup(current->signal->tty);
+diff -urpN a/kernel/uid16.c b/kernel/uid16.c
+--- a/kernel/uid16.c 2006-09-19 21:42:06.000000000 -0600
++++ b/kernel/uid16.c 2009-01-28 00:13:16.000000000 -0700
+@@ -18,7 +18,7 @@
#include <asm/uaccess.h>
@@ -98,7 +98,7 @@
{
long ret = sys_chown(filename, low2highuid(user), low2highgid(group));
/* avoid REGPARM breakage on x86: */
-@@ -25,7 +25,7 @@ asmlinkage long sys_chown16(const char _
+@@ -26,7 +26,7 @@ asmlinkage long sys_chown16(const char _
return ret;
}
@@ -107,7 +107,7 @@
{
long ret = sys_lchown(filename, low2highuid(user), low2highgid(group));
/* avoid REGPARM breakage on x86: */
-@@ -33,7 +33,7 @@ asmlinkage long sys_lchown16(const char
+@@ -34,7 +34,7 @@ asmlinkage long sys_lchown16(const char
return ret;
}
Modified: dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0028-System-call-wrappers-part-18.patch
==============================================================================
--- /dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/0028-System-call-wrappers-part-18.patch (original)
+++ dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0028-System-call-wrappers-part-18.patch Mon Feb 9 15:47:53 2009
@@ -9,13 +9,13 @@
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,
+Adjusted to apply to Debian's 2.6.18 by dann frazier <dannf at debian.org>
+
+diff -urpN a/kernel/uid16.c b/kernel/uid16.c
+--- a/kernel/uid16.c 2009-01-28 00:14:59.000000000 -0700
++++ b/kernel/uid16.c 2009-01-28 00:15:20.000000000 -0700
+@@ -42,7 +42,7 @@ SYSCALL_DEFINE3(fchown16, unsigned int,
return ret;
}
@@ -24,7 +24,7 @@
{
long ret = sys_setregid(low2highgid(rgid), low2highgid(egid));
/* avoid REGPARM breakage on x86: */
-@@ -49,7 +49,7 @@ asmlinkage long sys_setregid16(old_gid_t
+@@ -50,7 +50,7 @@ asmlinkage long sys_setregid16(old_gid_t
return ret;
}
@@ -33,7 +33,7 @@
{
long ret = sys_setgid(low2highgid(gid));
/* avoid REGPARM breakage on x86: */
-@@ -57,7 +57,7 @@ asmlinkage long sys_setgid16(old_gid_t g
+@@ -58,7 +58,7 @@ asmlinkage long sys_setgid16(old_gid_t g
return ret;
}
@@ -42,7 +42,7 @@
{
long ret = sys_setreuid(low2highuid(ruid), low2highuid(euid));
/* avoid REGPARM breakage on x86: */
-@@ -65,7 +65,7 @@ asmlinkage long sys_setreuid16(old_uid_t
+@@ -66,7 +66,7 @@ asmlinkage long sys_setreuid16(old_uid_t
return ret;
}
@@ -51,7 +51,7 @@
{
long ret = sys_setuid(low2highuid(uid));
/* avoid REGPARM breakage on x86: */
-@@ -73,7 +73,7 @@ asmlinkage long sys_setuid16(old_uid_t u
+@@ -74,7 +74,7 @@ asmlinkage long sys_setuid16(old_uid_t u
return ret;
}
@@ -60,7 +60,7 @@
{
long ret = sys_setresuid(low2highuid(ruid), low2highuid(euid),
low2highuid(suid));
-@@ -82,7 +82,7 @@ asmlinkage long sys_setresuid16(old_uid_
+@@ -83,7 +83,7 @@ asmlinkage long sys_setresuid16(old_uid_
return ret;
}
@@ -69,7 +69,7 @@
{
int retval;
-@@ -93,7 +93,7 @@ asmlinkage long sys_getresuid16(old_uid_
+@@ -94,7 +94,7 @@ asmlinkage long sys_getresuid16(old_uid_
return retval;
}
@@ -78,7 +78,7 @@
{
long ret = sys_setresgid(low2highgid(rgid), low2highgid(egid),
low2highgid(sgid));
-@@ -102,7 +102,8 @@ asmlinkage long sys_setresgid16(old_gid_
+@@ -103,7 +103,8 @@ asmlinkage long sys_setresgid16(old_gid_
return ret;
}
@@ -88,7 +88,7 @@
{
int retval;
-@@ -113,7 +114,7 @@ asmlinkage long sys_getresgid16(old_gid_
+@@ -114,7 +115,7 @@ asmlinkage long sys_getresgid16(old_gid_
return retval;
}
@@ -97,7 +97,7 @@
{
long ret = sys_setfsuid(low2highuid(uid));
/* avoid REGPARM breakage on x86: */
-@@ -121,7 +122,7 @@ asmlinkage long sys_setfsuid16(old_uid_t
+@@ -122,7 +123,7 @@ asmlinkage long sys_setfsuid16(old_uid_t
return ret;
}
Modified: dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0029-System-call-wrappers-part-19.patch
==============================================================================
--- /dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/0029-System-call-wrappers-part-19.patch (original)
+++ dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0029-System-call-wrappers-part-19.patch Mon Feb 9 15:47:53 2009
@@ -10,12 +10,34 @@
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.24 by dann frazier <dannf at debian.org>
+Adjusted to apply to Debian's 2.6.18 by dann frazier <dannf at debian.org>
-diff -urpN linux-source-2.6.24.orig/fs/read_write.c linux-source-2.6.24/fs/read_write.c
---- linux-source-2.6.24.orig/fs/read_write.c 2009-01-21 01:11:46.000000000 -0700
-+++ linux-source-2.6.24/fs/read_write.c 2009-01-21 01:13:03.000000000 -0700
-@@ -128,7 +128,7 @@ loff_t vfs_llseek(struct file *file, lof
+diff -urpN linux-source-2.6.18.orig/fs/open.c linux-source-2.6.18/fs/open.c
+--- linux-source-2.6.18.orig/fs/open.c 2009-01-25 23:04:17.000000000 -0700
++++ linux-source-2.6.18/fs/open.c 2009-01-25 23:06:21.000000000 -0700
+@@ -381,7 +381,7 @@ SYSCALL_ALIAS(sys_ftruncate64, SyS_ftrun
+ * 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)
+ {
+ int error;
+ struct nameidata nd;
+@@ -493,7 +493,8 @@ asmlinkage long sys_futimesat(int dfd, c
+ return do_utimes(dfd, filename, utimes ? times : NULL);
+ }
+
+-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.18.orig/fs/read_write.c linux-source-2.6.18/fs/read_write.c
+--- linux-source-2.6.18.orig/fs/read_write.c 2009-01-25 23:03:51.000000000 -0700
++++ linux-source-2.6.18/fs/read_write.c 2009-01-25 23:05:44.000000000 -0700
+@@ -125,7 +125,7 @@ loff_t vfs_llseek(struct file *file, lof
}
EXPORT_SYMBOL(vfs_llseek);
@@ -24,7 +46,7 @@
{
off_t retval;
struct file * file;
-@@ -152,9 +152,9 @@ bad:
+@@ -149,9 +149,9 @@ bad:
}
#ifdef __ARCH_WANT_SYS_LLSEEK
@@ -37,32 +59,10 @@
{
int retval;
struct file * file;
-diff -urpN linux-source-2.6.24.orig/fs/utimes.c linux-source-2.6.24/fs/utimes.c
---- linux-source-2.6.24.orig/fs/utimes.c 2008-10-10 00:11:29.000000000 -0600
-+++ linux-source-2.6.24/fs/utimes.c 2009-01-21 01:13:03.000000000 -0700
-@@ -22,7 +22,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];
-
-@@ -207,7 +207,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.24.orig/kernel/uid16.c linux-source-2.6.24/kernel/uid16.c
---- linux-source-2.6.24.orig/kernel/uid16.c 2009-01-21 01:12:46.000000000 -0700
-+++ linux-source-2.6.24/kernel/uid16.c 2009-01-21 01:13:03.000000000 -0700
-@@ -160,7 +160,7 @@ static int groups16_from_user(struct gro
+diff -urpN linux-source-2.6.18.orig/kernel/uid16.c linux-source-2.6.18/kernel/uid16.c
+--- linux-source-2.6.18.orig/kernel/uid16.c 2009-01-25 23:04:44.000000000 -0700
++++ linux-source-2.6.18/kernel/uid16.c 2009-01-25 23:05:47.000000000 -0700
+@@ -161,7 +161,7 @@ static int groups16_from_user(struct gro
return 0;
}
@@ -71,7 +71,7 @@
{
int i = 0;
-@@ -184,7 +184,7 @@ out:
+@@ -185,7 +185,7 @@ out:
return i;
}
@@ -80,7 +80,7 @@
{
struct group_info *group_info;
int retval;
-@@ -209,22 +209,22 @@ asmlinkage long sys_setgroups16(int gids
+@@ -210,22 +210,22 @@ asmlinkage long sys_setgroups16(int gids
return retval;
}
Modified: dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0030-System-call-wrappers-part-20.patch
==============================================================================
--- /dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/0030-System-call-wrappers-part-20.patch (original)
+++ dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0030-System-call-wrappers-part-20.patch Mon Feb 9 15:47:53 2009
@@ -10,12 +10,12 @@
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.24 by dann frazier <dannf at debian.org>
+Adjusted to apply to Debian's 2.6.18 by dann frazier <dannf at debian.org>
-diff -urpN linux-source-2.6.24.orig/fs/dcache.c linux-source-2.6.24/fs/dcache.c
---- linux-source-2.6.24.orig/fs/dcache.c 2008-10-10 00:11:28.000000000 -0600
-+++ linux-source-2.6.24/fs/dcache.c 2009-01-21 01:13:36.000000000 -0700
-@@ -1913,7 +1913,7 @@ char *dynamic_dname(struct dentry *dentr
+diff -urpN linux-source-2.6.18.orig/fs/dcache.c linux-source-2.6.18/fs/dcache.c
+--- linux-source-2.6.18.orig/fs/dcache.c 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/fs/dcache.c 2009-01-25 23:09:50.000000000 -0700
+@@ -1508,7 +1508,7 @@ char * d_path(struct dentry *dentry, str
* return NULL;
* }
*/
@@ -24,10 +24,10 @@
{
int error;
struct vfsmount *pwdmnt, *rootmnt;
-diff -urpN linux-source-2.6.24.orig/fs/namei.c linux-source-2.6.24/fs/namei.c
---- linux-source-2.6.24.orig/fs/namei.c 2009-01-21 01:11:17.000000000 -0700
-+++ linux-source-2.6.24/fs/namei.c 2009-01-21 01:13:36.000000000 -0700
-@@ -2067,7 +2067,7 @@ out_err:
+diff -urpN linux-source-2.6.18.orig/fs/namei.c linux-source-2.6.18/fs/namei.c
+--- linux-source-2.6.18.orig/fs/namei.c 2009-01-25 23:03:21.000000000 -0700
++++ linux-source-2.6.18/fs/namei.c 2009-01-25 23:09:50.000000000 -0700
+@@ -1948,7 +1948,7 @@ out:
return error;
}
@@ -36,7 +36,7 @@
{
return sys_mkdirat(AT_FDCWD, pathname, mode);
}
-@@ -2174,7 +2174,7 @@ exit:
+@@ -2055,7 +2055,7 @@ exit:
return error;
}
@@ -45,10 +45,10 @@
{
return do_rmdir(AT_FDCWD, pathname);
}
-diff -urpN linux-source-2.6.24.orig/fs/open.c linux-source-2.6.24/fs/open.c
---- linux-source-2.6.24.orig/fs/open.c 2009-01-21 01:12:18.000000000 -0700
-+++ linux-source-2.6.24/fs/open.c 2009-01-21 01:13:36.000000000 -0700
-@@ -495,7 +495,7 @@ SYSCALL_DEFINE2(access, const char __use
+diff -urpN linux-source-2.6.18.orig/fs/open.c linux-source-2.6.18/fs/open.c
+--- linux-source-2.6.18.orig/fs/open.c 2009-01-25 23:06:21.000000000 -0700
++++ linux-source-2.6.18/fs/open.c 2009-01-25 23:09:50.000000000 -0700
+@@ -557,7 +557,7 @@ SYSCALL_DEFINE2(access, const char __use
return sys_faccessat(AT_FDCWD, filename, mode);
}
@@ -57,7 +57,7 @@
{
struct nameidata nd;
int error;
-@@ -517,7 +517,7 @@ out:
+@@ -578,7 +578,7 @@ out:
return error;
}
@@ -66,10 +66,10 @@
{
struct file *file;
struct dentry *dentry;
-diff -urpN linux-source-2.6.24.orig/fs/quota.c linux-source-2.6.24/fs/quota.c
---- linux-source-2.6.24.orig/fs/quota.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/fs/quota.c 2009-01-21 01:13:36.000000000 -0700
-@@ -363,7 +363,8 @@ static inline struct super_block *quotac
+diff -urpN linux-source-2.6.18.orig/fs/quota.c linux-source-2.6.18/fs/quota.c
+--- linux-source-2.6.18.orig/fs/quota.c 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/fs/quota.c 2009-01-25 23:09:50.000000000 -0700
+@@ -343,7 +343,8 @@ static int do_quotactl(struct super_bloc
* calls. Maybe we need to add the process quotas etc. in the future,
* but we probably should use rlimits for that.
*/
@@ -79,10 +79,10 @@
{
uint cmds, type;
struct super_block *sb = NULL;
-diff -urpN linux-source-2.6.24.orig/fs/read_write.c linux-source-2.6.24/fs/read_write.c
---- linux-source-2.6.24.orig/fs/read_write.c 2009-01-21 01:13:03.000000000 -0700
-+++ linux-source-2.6.24/fs/read_write.c 2009-01-21 01:13:36.000000000 -0700
-@@ -354,7 +354,7 @@ static inline void file_pos_write(struct
+diff -urpN linux-source-2.6.18.orig/fs/read_write.c linux-source-2.6.18/fs/read_write.c
+--- linux-source-2.6.18.orig/fs/read_write.c 2009-01-25 23:05:44.000000000 -0700
++++ linux-source-2.6.18/fs/read_write.c 2009-01-25 23:09:50.000000000 -0700
+@@ -339,7 +339,7 @@ static inline void file_pos_write(struct
file->f_pos = pos;
}
@@ -91,9 +91,9 @@
{
struct file *file;
ssize_t ret = -EBADF;
-@@ -372,7 +372,8 @@ asmlinkage long sys_read(unsigned int fd
+@@ -357,7 +357,8 @@ asmlinkage long sys_read(unsigned int fd
}
- EXPORT_UNUSED_SYMBOL_GPL(sys_read); /* to be deleted for 2.6.25 */
+ EXPORT_SYMBOL_GPL(sys_read);
-asmlinkage long sys_write(unsigned int fd, const char __user * buf, size_t count)
+SYSCALL_DEFINE3(write, unsigned int, fd, const char __user *, buf,
@@ -101,7 +101,7 @@
{
struct file *file;
ssize_t ret = -EBADF;
-@@ -676,8 +677,8 @@ ssize_t vfs_writev(struct file *file, co
+@@ -610,8 +611,8 @@ ssize_t vfs_writev(struct file *file, co
EXPORT_SYMBOL(vfs_writev);
@@ -112,7 +112,7 @@
{
struct file *file;
ssize_t ret = -EBADF;
-@@ -697,8 +698,8 @@ sys_readv(unsigned long fd, const struct
+@@ -631,8 +632,8 @@ sys_readv(unsigned long fd, const struct
return ret;
}
Modified: dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0031-System-call-wrappers-part-21.patch
==============================================================================
--- /dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/0031-System-call-wrappers-part-21.patch (original)
+++ dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0031-System-call-wrappers-part-21.patch Mon Feb 9 15:47:53 2009
@@ -10,12 +10,12 @@
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.24 by dann frazier <dannf at debian.org>
+Backported to Debian's 2.6.18 by dann frazier <dannf at debian.org>
-diff -urpN linux-source-2.6.24.orig/fs/readdir.c linux-source-2.6.24/fs/readdir.c
---- linux-source-2.6.24.orig/fs/readdir.c 2009-01-21 00:13:05.000000000 -0700
-+++ linux-source-2.6.24/fs/readdir.c 2009-01-21 01:14:06.000000000 -0700
-@@ -180,7 +180,8 @@ efault:
+diff -urpN linux-source-2.6.18.orig/fs/readdir.c linux-source-2.6.18/fs/readdir.c
+--- linux-source-2.6.18.orig/fs/readdir.c 2009-01-25 21:05:36.000000000 -0700
++++ linux-source-2.6.18/fs/readdir.c 2009-01-25 23:10:13.000000000 -0700
+@@ -173,7 +173,8 @@ efault:
return -EFAULT;
}
@@ -25,7 +25,7 @@
{
struct file * file;
struct linux_dirent __user * lastdirent;
-@@ -264,7 +265,8 @@ efault:
+@@ -259,7 +260,8 @@ efault:
return -EFAULT;
}
@@ -35,10 +35,10 @@
{
struct file * file;
struct linux_dirent64 __user * lastdirent;
-diff -urpN linux-source-2.6.24.orig/net/socket.c linux-source-2.6.24/net/socket.c
---- linux-source-2.6.24.orig/net/socket.c 2009-01-21 00:59:55.000000000 -0700
-+++ linux-source-2.6.24/net/socket.c 2009-01-21 01:14:06.000000000 -0700
-@@ -1324,7 +1324,7 @@ out_fd:
+diff -urpN linux-source-2.6.18.orig/net/socket.c linux-source-2.6.18/net/socket.c
+--- linux-source-2.6.18.orig/net/socket.c 2009-01-25 21:07:13.000000000 -0700
++++ linux-source-2.6.18/net/socket.c 2009-01-25 23:12:17.000000000 -0700
+@@ -1332,7 +1332,7 @@ out:
* the protocol layer (having also checked the address is ok).
*/
@@ -47,67 +47,61 @@
{
struct socket *sock;
char address[MAX_SOCK_ADDR];
-@@ -1386,8 +1386,8 @@ asmlinkage long sys_listen(int fd, int b
+@@ -1391,7 +1391,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)
+-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;
-@@ -1476,8 +1476,8 @@ out_fd:
+@@ -1474,7 +1475,8 @@ out_fd:
* include the -EINPROGRESS status for such sockets.
*/
--asmlinkage long sys_connect(int fd, struct sockaddr __user *uservaddr,
-- int addrlen)
+-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];
-@@ -1508,8 +1508,8 @@ out:
+@@ -1504,7 +1506,8 @@ out:
* name to user space.
*/
--asmlinkage long sys_getsockname(int fd, struct sockaddr __user *usockaddr,
-- int __user *usockaddr_len)
+-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];
-@@ -1539,8 +1539,8 @@ out:
+@@ -1534,7 +1537,8 @@ out:
* name to user space.
*/
--asmlinkage long sys_getpeername(int fd, struct sockaddr __user *usockaddr,
-- int __user *usockaddr_len)
+-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];
-@@ -1691,8 +1691,8 @@ asmlinkage long sys_recv(int fd, void __
+@@ -1675,7 +1679,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)
+-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;
-@@ -1725,8 +1725,8 @@ out_put:
+@@ -1704,7 +1709,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)
+-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)
{
Modified: dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0032-System-call-wrappers-part-22.patch
==============================================================================
--- /dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/0032-System-call-wrappers-part-22.patch (original)
+++ dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0032-System-call-wrappers-part-22.patch Mon Feb 9 15:47:53 2009
@@ -10,13 +10,13 @@
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.24 by dann frazier <dannf at debian.org>
+Adjusted to apply to Debian's 2.6.18 by dann frazier <dannf at debian.org>
-diff -urpN linux-source-2.6.24.orig/net/socket.c linux-source-2.6.24/net/socket.c
---- linux-source-2.6.24.orig/net/socket.c 2009-01-21 01:14:06.000000000 -0700
-+++ linux-source-2.6.24/net/socket.c 2009-01-21 01:14:32.000000000 -0700
-@@ -1199,7 +1199,7 @@ int sock_create_kern(int family, int typ
- return __sock_create(&init_net, family, type, protocol, res, 1);
+diff -urpN linux-source-2.6.18.orig/net/socket.c linux-source-2.6.18/net/socket.c
+--- linux-source-2.6.18.orig/net/socket.c 2009-01-25 23:12:17.000000000 -0700
++++ linux-source-2.6.18/net/socket.c 2009-01-25 23:15:18.000000000 -0700
+@@ -1236,7 +1236,7 @@ int sock_create_kern(int family, int typ
+ return __sock_create(family, type, protocol, res, 1);
}
-asmlinkage long sys_socket(int family, int type, int protocol)
@@ -24,88 +24,84 @@
{
int retval;
struct socket *sock;
-@@ -1225,8 +1225,8 @@ out_release:
+@@ -1262,7 +1262,8 @@ out_release:
* Create a pair of connected sockets.
*/
--asmlinkage long sys_socketpair(int family, int type, int protocol,
-- int __user *usockvec)
+-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;
-@@ -1355,7 +1355,7 @@ SYSCALL_DEFINE3(bind, int, fd, struct so
+@@ -1360,7 +1361,7 @@ SYSCALL_DEFINE3(bind, int, fd, struct so
- int sysctl_somaxconn __read_mostly = SOMAXCONN;
+ int sysctl_somaxconn = SOMAXCONN;
-asmlinkage long sys_listen(int fd, int backlog)
+SYSCALL_DEFINE2(listen, int, fd, int, backlog)
{
struct socket *sock;
int err, fput_needed;
-@@ -1571,9 +1571,9 @@ SYSCALL_DEFINE3(getpeername, int, fd, st
+@@ -1565,8 +1566,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)
+-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];
-@@ -1621,7 +1621,8 @@ out:
- * Send a datagram down a socket.
+@@ -1612,7 +1614,8 @@ out_put:
+ * Send a datagram down a socket.
*/
--asmlinkage long sys_send(int fd, void __user *buff, size_t len, unsigned flags)
+-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);
}
-@@ -1632,9 +1633,9 @@ asmlinkage long sys_send(int fd, void __
+@@ -1623,8 +1626,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)
+-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;
-@@ -1781,7 +1782,7 @@ SYSCALL_DEFINE2(shutdown, int, fd, int,
+@@ -1762,7 +1766,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;
-@@ -1883,8 +1884,8 @@ out:
+ struct compat_msghdr __user *msg_compat = (struct compat_msghdr __user *)msg;
+ struct socket *sock;
+@@ -1860,7 +1864,8 @@ out:
* BSD recvmsg interface
*/
--asmlinkage long sys_recvmsg(int fd, struct msghdr __user *msg,
-- unsigned int flags)
+-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;
-@@ -2001,7 +2002,7 @@ static const unsigned char nargs[18]={
- * it is set by the callees.
+ struct compat_msghdr __user *msg_compat = (struct compat_msghdr __user *)msg;
+ struct socket *sock;
+@@ -1974,7 +1979,7 @@ static unsigned char nargs[18]={AL(0),AL
+ * 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;
+ unsigned long a0,a1;
Modified: dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0033-System-call-wrappers-part-23.patch
==============================================================================
--- /dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/0033-System-call-wrappers-part-23.patch (original)
+++ dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0033-System-call-wrappers-part-23.patch Mon Feb 9 15:47:53 2009
@@ -10,32 +10,32 @@
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.24 by dann frazier <dannf at debian.org>
+Backported to Debian's 2.6.18 by dann frazier <dannf at debian.org>
-diff -urpN linux-source-2.6.24.orig/fs/eventpoll.c linux-source-2.6.24/fs/eventpoll.c
---- linux-source-2.6.24.orig/fs/eventpoll.c 2008-10-10 00:11:27.000000000 -0600
-+++ linux-source-2.6.24/fs/eventpoll.c 2009-01-21 01:15:04.000000000 -0700
-@@ -1070,7 +1070,7 @@ retry:
- * RB tree. With the current implementation, the "size" parameter is ignored
- * (besides sanity checks).
+diff -urpN linux-source-2.6.18.orig/fs/eventpoll.c linux-source-2.6.18/fs/eventpoll.c
+--- linux-source-2.6.18.orig/fs/eventpoll.c 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/fs/eventpoll.c 2009-01-25 23:17:12.000000000 -0700
+@@ -495,7 +495,7 @@ void eventpoll_release_file(struct file
+ * file descriptors inside the epoll interface. It is the kernel part of
+ * the userspace epoll_create(2).
*/
-asmlinkage long sys_epoll_create(int size)
+SYSCALL_DEFINE1(epoll_create, int, size)
{
- int error, fd = -1;
+ int error, fd;
struct eventpoll *ep;
-@@ -1115,8 +1115,8 @@ error_return:
- * the eventpoll file that enables the insertion/removal/change of
- * file descriptors inside the interest set.
+@@ -542,8 +542,8 @@ eexit_1:
+ * file descriptors inside the interest set. It represents
+ * the kernel part of the user space epoll_ctl(2).
*/
--asmlinkage long sys_epoll_ctl(int epfd, int op, int fd,
-- struct epoll_event __user *event)
+-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;
-@@ -1213,8 +1213,8 @@ error_return:
+@@ -646,8 +646,8 @@ eexit_1:
* Implement the event wait interface for the eventpoll file. It is the kernel
* part of the user space epoll_wait(2).
*/
@@ -46,23 +46,10 @@
{
int error;
struct file *file;
-@@ -1271,9 +1271,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.24.orig/fs/select.c linux-source-2.6.24/fs/select.c
---- linux-source-2.6.24.orig/fs/select.c 2009-01-21 00:41:11.000000000 -0700
-+++ linux-source-2.6.24/fs/select.c 2009-01-21 01:15:04.000000000 -0700
-@@ -373,8 +373,8 @@ out_nofds:
+diff -urpN linux-source-2.6.18.orig/fs/select.c linux-source-2.6.18/fs/select.c
+--- linux-source-2.6.18.orig/fs/select.c 2009-01-25 21:05:36.000000000 -0700
++++ linux-source-2.6.18/fs/select.c 2009-01-25 23:16:04.000000000 -0700
+@@ -381,8 +381,8 @@ out_nofds:
return ret;
}
@@ -73,8 +60,8 @@
{
s64 timeout = -1;
struct timeval tv;
-@@ -726,8 +726,8 @@ static long do_restart_poll(struct resta
- return ret;
+@@ -743,8 +743,8 @@ out_fds:
+ return err;
}
-asmlinkage long sys_poll(struct pollfd __user *ufds, unsigned int nfds,
@@ -83,11 +70,11 @@
+ long, timeout_msecs)
{
s64 timeout_jiffies;
- int ret;
-diff -urpN linux-source-2.6.24.orig/kernel/sys.c linux-source-2.6.24/kernel/sys.c
---- linux-source-2.6.24.orig/kernel/sys.c 2009-01-21 00:59:55.000000000 -0700
-+++ linux-source-2.6.24/kernel/sys.c 2009-01-21 01:15:04.000000000 -0700
-@@ -1354,7 +1354,7 @@ asmlinkage long sys_newuname(struct new_
+
+diff -urpN linux-source-2.6.18.orig/kernel/sys.c linux-source-2.6.18/kernel/sys.c
+--- linux-source-2.6.18.orig/kernel/sys.c 2009-01-25 21:07:13.000000000 -0700
++++ linux-source-2.6.18/kernel/sys.c 2009-01-25 23:16:04.000000000 -0700
+@@ -1682,7 +1682,7 @@ asmlinkage long sys_newuname(struct new_
return errno;
}
@@ -96,7 +83,7 @@
{
int errno;
char tmp[__NEW_UTS_LEN];
-@@ -1376,7 +1376,7 @@ asmlinkage long sys_sethostname(char __u
+@@ -1704,7 +1704,7 @@ asmlinkage long sys_sethostname(char __u
#ifdef __ARCH_WANT_SYS_GETHOSTNAME
@@ -105,7 +92,7 @@
{
int i, errno;
-@@ -1399,7 +1399,7 @@ asmlinkage long sys_gethostname(char __u
+@@ -1727,7 +1727,7 @@ asmlinkage long sys_gethostname(char __u
* Only setdomainname; getdomainname can be implemented by calling
* uname()
*/
Modified: dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0034-System-call-wrappers-part-24.patch
==============================================================================
--- /dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/0034-System-call-wrappers-part-24.patch (original)
+++ dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0034-System-call-wrappers-part-24.patch Mon Feb 9 15:47:53 2009
@@ -10,21 +10,21 @@
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.24 by dann frazier <dannf at debian.org>
+Adjusted to apply to Debian's 2.6.18 by dann frazier <dannf at debian.org>
-diff -urpN linux-source-2.6.24.orig/ipc/msg.c linux-source-2.6.24/ipc/msg.c
---- linux-source-2.6.24.orig/ipc/msg.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/ipc/msg.c 2009-01-21 01:15:34.000000000 -0700
-@@ -310,7 +310,7 @@ static inline int msg_security(struct ke
- return security_msg_queue_associate(msq, msgflg);
+diff -urpN linux-source-2.6.18.orig/ipc/msg.c linux-source-2.6.18/ipc/msg.c
+--- linux-source-2.6.18.orig/ipc/msg.c 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/ipc/msg.c 2009-01-25 23:18:41.000000000 -0700
+@@ -208,7 +208,7 @@ static void freeque(struct msg_queue *ms
+ ipc_rcu_putref(msq);
}
-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;
-@@ -421,7 +421,7 @@ copy_msqid_from_user(struct msq_setbuf *
+ struct msg_queue *msq;
+ int id, ret = -EPERM;
+@@ -335,7 +335,7 @@ copy_msqid_from_user(struct msq_setbuf *
}
}
@@ -32,9 +32,9 @@
+SYSCALL_DEFINE3(msgctl, int, msqid, int, cmd, struct msqid_ds __user *, buf)
{
struct kern_ipc_perm *ipcp;
- struct msq_setbuf uninitialized_var(setbuf);
-@@ -749,8 +749,8 @@ out_free:
- return err;
+ struct msq_setbuf setbuf;
+@@ -575,8 +575,8 @@ static inline int pipelined_send(struct
+ return 0;
}
-asmlinkage long
@@ -42,10 +42,10 @@
+SYSCALL_DEFINE4(msgsnd, int, msqid, struct msgbuf __user *, msgp, size_t, msgsz,
+ int, msgflg)
{
- long mtype;
-
-@@ -930,8 +930,8 @@ out_unlock:
- return msgsz;
+ struct msg_queue *msq;
+ struct msg_msg *msg;
+@@ -688,8 +688,8 @@ static inline int convert_mode(long *msg
+ return SEARCH_EQUAL;
}
-asmlinkage long sys_msgrcv(int msqid, struct msgbuf __user *msgp, size_t msgsz,
@@ -53,12 +53,12 @@
+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.24.orig/kernel/sys.c linux-source-2.6.24/kernel/sys.c
---- linux-source-2.6.24.orig/kernel/sys.c 2009-01-21 01:15:04.000000000 -0700
-+++ linux-source-2.6.24/kernel/sys.c 2009-01-21 01:15:34.000000000 -0700
-@@ -1343,7 +1343,7 @@ DECLARE_RWSEM(uts_sem);
+ struct msg_queue *msq;
+ struct msg_msg *msg;
+diff -urpN linux-source-2.6.18.orig/kernel/sys.c linux-source-2.6.18/kernel/sys.c
+--- linux-source-2.6.18.orig/kernel/sys.c 2009-01-25 23:16:04.000000000 -0700
++++ linux-source-2.6.18/kernel/sys.c 2009-01-25 23:18:41.000000000 -0700
+@@ -1671,7 +1671,7 @@ DECLARE_RWSEM(uts_sem);
EXPORT_SYMBOL(uts_sem);
@@ -67,7 +67,7 @@
{
int errno = 0;
-@@ -1420,7 +1420,7 @@ SYSCALL_DEFINE2(setdomainname, char __us
+@@ -1748,7 +1748,7 @@ SYSCALL_DEFINE2(setdomainname, char __us
return errno;
}
@@ -76,7 +76,7 @@
{
if (resource >= RLIM_NLIMITS)
return -EINVAL;
-@@ -1439,7 +1439,8 @@ asmlinkage long sys_getrlimit(unsigned i
+@@ -1767,7 +1767,8 @@ asmlinkage long sys_getrlimit(unsigned i
* Back compatibility for getrlimit. Needed for some apps.
*/
@@ -86,7 +86,7 @@
{
struct rlimit x;
if (resource >= RLIM_NLIMITS)
-@@ -1457,7 +1458,7 @@ asmlinkage long sys_old_getrlimit(unsign
+@@ -1785,7 +1786,7 @@ asmlinkage long sys_old_getrlimit(unsign
#endif
@@ -95,7 +95,7 @@
{
struct rlimit new_rlim, *old_rlim;
unsigned long it_prof_secs;
-@@ -1626,14 +1627,14 @@ int getrusage(struct task_struct *p, int
+@@ -1948,14 +1949,14 @@ int getrusage(struct task_struct *p, int
return copy_to_user(ru, &r, sizeof(r)) ? -EFAULT : 0;
}
Modified: dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0035-System-call-wrappers-part-25.patch
==============================================================================
--- /dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/0035-System-call-wrappers-part-25.patch (original)
+++ dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0035-System-call-wrappers-part-25.patch Mon Feb 9 15:47:53 2009
@@ -10,12 +10,12 @@
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.24 by dann frazier <dannf at debian.org>
+Backported to Debian's 2.6.18 by dann frazier <dannf at debian.org>
-diff -urpN linux-source-2.6.24.orig/ipc/mqueue.c linux-source-2.6.24/ipc/mqueue.c
---- linux-source-2.6.24.orig/ipc/mqueue.c 2009-01-21 00:05:39.000000000 -0700
-+++ linux-source-2.6.24/ipc/mqueue.c 2009-01-21 01:16:11.000000000 -0700
-@@ -647,8 +647,8 @@ static int oflag2acc[O_ACCMODE] = { MAY_
+diff -urpN linux-source-2.6.18.orig/ipc/mqueue.c linux-source-2.6.18/ipc/mqueue.c
+--- linux-source-2.6.18.orig/ipc/mqueue.c 2009-01-25 21:05:36.000000000 -0700
++++ linux-source-2.6.18/ipc/mqueue.c 2009-01-25 23:19:11.000000000 -0700
+@@ -652,8 +652,8 @@ static int oflag2acc[O_ACCMODE] = { MAY_
return dentry_open(dentry, mqueue_mnt, oflag);
}
@@ -26,7 +26,7 @@
{
struct dentry *dentry;
struct file *filp;
-@@ -716,7 +716,7 @@ out_putname:
+@@ -719,7 +719,7 @@ out_putname:
return fd;
}
@@ -35,19 +35,19 @@
{
int err;
char *name;
-diff -urpN linux-source-2.6.24.orig/ipc/sem.c linux-source-2.6.24/ipc/sem.c
---- linux-source-2.6.24.orig/ipc/sem.c 2009-01-21 00:50:44.000000000 -0700
-+++ linux-source-2.6.24/ipc/sem.c 2009-01-21 01:16:11.000000000 -0700
-@@ -329,7 +329,7 @@ static inline int sem_more_checks(struct
- return 0;
+diff -urpN linux-source-2.6.18.orig/ipc/sem.c linux-source-2.6.18/ipc/sem.c
+--- linux-source-2.6.18.orig/ipc/sem.c 2009-01-25 21:05:36.000000000 -0700
++++ linux-source-2.6.18/ipc/sem.c 2009-01-25 23:19:35.000000000 -0700
+@@ -211,7 +211,7 @@ static int newary (key_t key, int nsems,
+ return sma->sem_id;
}
--asmlinkage long sys_semget(key_t key, int nsems, int semflg)
+-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;
-@@ -1121,8 +1121,8 @@ out:
+ int id, err = -EINVAL;
+ struct sem_array *sma;
+@@ -1066,8 +1066,8 @@ out:
return un;
}
@@ -58,7 +58,7 @@
{
int error = -EINVAL;
struct sem_array *sma;
-@@ -1285,7 +1285,8 @@ out_free:
+@@ -1228,7 +1228,8 @@ out_free:
return error;
}
@@ -68,19 +68,19 @@
{
return sys_semtimedop(semid, tsops, nsops, NULL);
}
-diff -urpN linux-source-2.6.24.orig/ipc/shm.c linux-source-2.6.24/ipc/shm.c
---- linux-source-2.6.24.orig/ipc/shm.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/ipc/shm.c 2009-01-21 01:16:37.000000000 -0700
-@@ -492,7 +492,7 @@ static inline int shm_more_checks(struct
- return 0;
+diff -urpN linux-source-2.6.18.orig/ipc/shm.c linux-source-2.6.18/ipc/shm.c
+--- linux-source-2.6.18.orig/ipc/shm.c 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/ipc/shm.c 2009-01-25 23:19:11.000000000 -0700
+@@ -269,7 +269,7 @@ no_file:
+ return error;
}
-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;
-@@ -641,7 +641,7 @@ static void shm_get_stat(struct ipc_name
+ struct shmid_kernel *shp;
+ int err, id = 0;
+@@ -425,7 +425,7 @@ static void shm_get_stat(unsigned long *
}
}
@@ -89,8 +89,8 @@
{
struct shm_setbuf setbuf;
struct shmid_kernel *shp;
-@@ -1048,7 +1048,7 @@ out_put_dentry:
- goto out_nattch;
+@@ -802,7 +802,7 @@ out:
+ return err;
}
-asmlinkage long sys_shmat(int shmid, char __user *shmaddr, int shmflg)
@@ -98,7 +98,7 @@
{
unsigned long ret;
long err;
-@@ -1064,7 +1064,7 @@ asmlinkage long sys_shmat(int shmid, cha
+@@ -818,7 +818,7 @@ asmlinkage long sys_shmat(int shmid, cha
* detach and kill segment if marked destroyed.
* The work is done in shm_close.
*/
Modified: dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0036-System-call-wrappers-part-26.patch
==============================================================================
--- /dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/0036-System-call-wrappers-part-26.patch (original)
+++ dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0036-System-call-wrappers-part-26.patch Mon Feb 9 15:47:53 2009
@@ -10,12 +10,12 @@
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.24 by dann frazier <dannf at debian.org>
+Adjusted to apply to Debian's 2.6.18 by dann frazier <dannf at debian.org>
-diff -urpN linux-source-2.6.24.orig/drivers/pci/syscall.c linux-source-2.6.24/drivers/pci/syscall.c
---- linux-source-2.6.24.orig/drivers/pci/syscall.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/drivers/pci/syscall.c 2009-01-21 01:17:17.000000000 -0700
-@@ -14,10 +14,8 @@
+diff -urpN linux-source-2.6.18.orig/drivers/pci/syscall.c linux-source-2.6.18/drivers/pci/syscall.c
+--- linux-source-2.6.18.orig/drivers/pci/syscall.c 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/drivers/pci/syscall.c 2009-01-25 23:20:11.000000000 -0700
+@@ -15,10 +15,8 @@
#include <asm/uaccess.h>
#include "pci.h"
@@ -28,7 +28,7 @@
{
struct pci_dev *dev;
u8 byte;
-@@ -89,10 +87,8 @@ error:
+@@ -88,10 +86,8 @@ error:
return err;
}
@@ -41,10 +41,10 @@
{
struct pci_dev *dev;
u8 byte;
-diff -urpN linux-source-2.6.24.orig/ipc/mqueue.c linux-source-2.6.24/ipc/mqueue.c
---- linux-source-2.6.24.orig/ipc/mqueue.c 2009-01-21 01:16:11.000000000 -0700
-+++ linux-source-2.6.24/ipc/mqueue.c 2009-01-21 01:17:17.000000000 -0700
-@@ -806,9 +806,9 @@ static inline void pipelined_receive(str
+diff -urpN linux-source-2.6.18.orig/ipc/mqueue.c linux-source-2.6.18/ipc/mqueue.c
+--- linux-source-2.6.18.orig/ipc/mqueue.c 2009-01-25 23:19:11.000000000 -0700
++++ linux-source-2.6.18/ipc/mqueue.c 2009-01-25 23:20:11.000000000 -0700
+@@ -808,9 +808,9 @@ static inline void pipelined_receive(str
sender->state = STATE_READY;
}
@@ -57,7 +57,7 @@
{
struct file *filp;
struct inode *inode;
-@@ -894,9 +894,9 @@ out:
+@@ -895,9 +895,9 @@ out:
return ret;
}
@@ -81,7 +81,7 @@
{
int ret;
struct file *filp;
-@@ -1105,9 +1105,9 @@ out:
+@@ -1102,9 +1102,9 @@ out:
return ret;
}
@@ -94,10 +94,10 @@
{
int ret;
struct mq_attr mqstat, omqstat;
-diff -urpN linux-source-2.6.24.orig/kernel/sys.c linux-source-2.6.24/kernel/sys.c
---- linux-source-2.6.24.orig/kernel/sys.c 2009-01-21 01:15:34.000000000 -0700
-+++ linux-source-2.6.24/kernel/sys.c 2009-01-21 01:18:10.000000000 -0700
-@@ -1640,8 +1640,8 @@ SYSCALL_DEFINE1(umask, int, mask)
+diff -urpN linux-source-2.6.18.orig/kernel/sys.c linux-source-2.6.18/kernel/sys.c
+--- linux-source-2.6.18.orig/kernel/sys.c 2009-01-25 23:18:41.000000000 -0700
++++ linux-source-2.6.18/kernel/sys.c 2009-01-25 23:20:11.000000000 -0700
+@@ -1962,8 +1962,8 @@ SYSCALL_DEFINE1(umask, int, mask)
return mask;
}
@@ -108,10 +108,10 @@
{
long error;
-diff -urpN linux-source-2.6.24.orig/mm/swapfile.c linux-source-2.6.24/mm/swapfile.c
---- linux-source-2.6.24.orig/mm/swapfile.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/mm/swapfile.c 2009-01-21 01:17:17.000000000 -0700
-@@ -1172,7 +1172,7 @@ int page_queue_congested(struct page *pa
+diff -urpN linux-source-2.6.18.orig/mm/swapfile.c linux-source-2.6.18/mm/swapfile.c
+--- linux-source-2.6.18.orig/mm/swapfile.c 2008-12-25 14:04:13.000000000 -0700
++++ linux-source-2.6.18/mm/swapfile.c 2009-01-25 23:20:11.000000000 -0700
+@@ -1135,7 +1135,7 @@ int page_queue_congested(struct page *pa
}
#endif
@@ -120,7 +120,7 @@
{
struct swap_info_struct * p = NULL;
unsigned short *swap_map;
-@@ -1410,7 +1410,7 @@ __initcall(procswaps_init);
+@@ -1373,7 +1373,7 @@ __initcall(procswaps_init);
*
* The swapon system call
*/
Modified: dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0037-System-call-wrappers-part-27.patch
==============================================================================
--- /dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/0037-System-call-wrappers-part-27.patch (original)
+++ dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0037-System-call-wrappers-part-27.patch Mon Feb 9 15:47:53 2009
@@ -10,12 +10,12 @@
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.24 by dann frazier <dannf at debian.org>
+Adjusted to apply to Debian's 2.6.18 by dann frazier <dannf at debian.org>
-diff -urpN linux-source-2.6.24.orig/fs/exec.c linux-source-2.6.24/fs/exec.c
---- linux-source-2.6.24.orig/fs/exec.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/fs/exec.c 2009-01-21 01:18:48.000000000 -0700
-@@ -101,7 +101,7 @@ static inline void put_binfmt(struct lin
+diff -urpN linux-source-2.6.18.orig/fs/exec.c linux-source-2.6.18/fs/exec.c
+--- linux-source-2.6.18.orig/fs/exec.c 2008-12-25 14:04:13.000000000 -0700
++++ linux-source-2.6.18/fs/exec.c 2009-01-25 23:20:42.000000000 -0700
+@@ -121,7 +121,7 @@ static inline void put_binfmt(struct lin
*
* Also note that we take the address to load from from the file itself.
*/
@@ -24,10 +24,10 @@
{
struct file * file;
struct nameidata nd;
-diff -urpN linux-source-2.6.24.orig/fs/filesystems.c linux-source-2.6.24/fs/filesystems.c
---- linux-source-2.6.24.orig/fs/filesystems.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/fs/filesystems.c 2009-01-21 01:18:48.000000000 -0700
-@@ -177,7 +177,7 @@ static int fs_maxindex(void)
+diff -urpN linux-source-2.6.18.orig/fs/filesystems.c linux-source-2.6.18/fs/filesystems.c
+--- linux-source-2.6.18.orig/fs/filesystems.c 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/fs/filesystems.c 2009-01-25 23:20:42.000000000 -0700
+@@ -178,7 +178,7 @@ static int fs_maxindex(void)
/*
* Whee.. Weird sysv syscall.
*/
@@ -36,10 +36,10 @@
{
int retval = -EINVAL;
-diff -urpN linux-source-2.6.24.orig/fs/nfsctl.c linux-source-2.6.24/fs/nfsctl.c
---- linux-source-2.6.24.orig/fs/nfsctl.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/fs/nfsctl.c 2009-01-21 01:18:48.000000000 -0700
-@@ -82,8 +82,8 @@ static struct {
+diff -urpN linux-source-2.6.18.orig/fs/nfsctl.c linux-source-2.6.18/fs/nfsctl.c
+--- linux-source-2.6.18.orig/fs/nfsctl.c 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/fs/nfsctl.c 2009-01-25 23:20:42.000000000 -0700
+@@ -86,8 +86,8 @@ static struct {
},
};
@@ -50,10 +50,10 @@
{
struct file *file;
void __user *p = &arg->u;
-diff -urpN linux-source-2.6.24.orig/kernel/printk.c linux-source-2.6.24/kernel/printk.c
---- linux-source-2.6.24.orig/kernel/printk.c 2009-01-21 00:42:57.000000000 -0700
-+++ linux-source-2.6.24/kernel/printk.c 2009-01-21 01:18:48.000000000 -0700
-@@ -421,7 +421,7 @@ out:
+diff -urpN linux-source-2.6.18.orig/kernel/printk.c linux-source-2.6.18/kernel/printk.c
+--- linux-source-2.6.18.orig/kernel/printk.c 2009-01-25 21:05:36.000000000 -0700
++++ linux-source-2.6.18/kernel/printk.c 2009-01-25 23:20:42.000000000 -0700
+@@ -314,7 +314,7 @@ out:
return error;
}
@@ -62,11 +62,11 @@
{
return do_syslog(type, buf, len);
}
-diff -urpN linux-source-2.6.24.orig/kernel/ptrace.c linux-source-2.6.24/kernel/ptrace.c
---- linux-source-2.6.24.orig/kernel/ptrace.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/kernel/ptrace.c 2009-01-21 01:19:33.000000000 -0700
-@@ -459,7 +459,7 @@ struct task_struct *ptrace_get_task_stru
- #endif
+diff -urpN linux-source-2.6.18.orig/kernel/ptrace.c linux-source-2.6.18/kernel/ptrace.c
+--- linux-source-2.6.18.orig/kernel/ptrace.c 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/kernel/ptrace.c 2009-01-25 23:20:42.000000000 -0700
+@@ -501,7 +501,7 @@ struct task_struct *ptrace_get_task_stru
+ }
#ifndef __ARCH_SYS_PTRACE
-asmlinkage long sys_ptrace(long request, long pid, long addr, long data)
@@ -74,10 +74,10 @@
{
struct task_struct *child;
long ret;
-diff -urpN linux-source-2.6.24.orig/kernel/sysctl.c linux-source-2.6.24/kernel/sysctl.c
---- linux-source-2.6.24.orig/kernel/sysctl.c 2008-10-10 00:11:28.000000000 -0600
-+++ linux-source-2.6.24/kernel/sysctl.c 2009-01-21 01:18:48.000000000 -0700
-@@ -1354,7 +1354,7 @@ int do_sysctl(int __user *name, int nlen
+diff -urpN linux-source-2.6.18.orig/kernel/sysctl.c linux-source-2.6.18/kernel/sysctl.c
+--- linux-source-2.6.18.orig/kernel/sysctl.c 2008-12-25 14:04:12.000000000 -0700
++++ linux-source-2.6.18/kernel/sysctl.c 2009-01-25 23:20:42.000000000 -0700
+@@ -1194,7 +1194,7 @@ int do_sysctl(int __user *name, int nlen
return error;
}
@@ -86,30 +86,30 @@
{
struct __sysctl_args tmp;
int error;
-@@ -2564,7 +2564,7 @@ int sysctl_ms_jiffies(struct ctl_table *
- #else /* CONFIG_SYSCTL_SYSCALL */
+@@ -2446,7 +2446,7 @@ int sysctl_ms_jiffies(ctl_table *table,
+ #else /* CONFIG_SYSCTL */
-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.24.orig/kernel/timer.c linux-source-2.6.24/kernel/timer.c
---- linux-source-2.6.24.orig/kernel/timer.c 2009-01-21 00:55:17.000000000 -0700
-+++ linux-source-2.6.24/kernel/timer.c 2009-01-21 01:18:48.000000000 -0700
-@@ -1208,7 +1208,7 @@ out:
- return 0;
+ return -ENOSYS;
}
-
+diff -urpN linux-source-2.6.18.orig/kernel/timer.c linux-source-2.6.18/kernel/timer.c
+--- linux-source-2.6.18.orig/kernel/timer.c 2009-01-25 21:05:36.000000000 -0700
++++ linux-source-2.6.18/kernel/timer.c 2009-01-25 23:21:09.000000000 -0700
+@@ -1473,7 +1473,7 @@ SYSCALL_DEFINE0(gettid)
+ /*
+ * sys_sysinfo - fill in sysinfo struct
+ */
-asmlinkage long sys_sysinfo(struct sysinfo __user *info)
+SYSCALL_DEFINE1(sysinfo, struct sysinfo __user *, info)
{
struct sysinfo val;
-
-diff -urpN linux-source-2.6.24.orig/security/keys/keyctl.c linux-source-2.6.24/security/keys/keyctl.c
---- linux-source-2.6.24.orig/security/keys/keyctl.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/security/keys/keyctl.c 2009-01-21 01:18:48.000000000 -0700
+ unsigned long mem_total, sav_total;
+diff -urpN linux-source-2.6.18.orig/security/keys/keyctl.c linux-source-2.6.18/security/keys/keyctl.c
+--- linux-source-2.6.18.orig/security/keys/keyctl.c 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/security/keys/keyctl.c 2009-01-25 23:20:42.000000000 -0700
@@ -52,11 +52,11 @@ static int key_get_type_from_user(char *
* - returns the new key's serial number
* - implements add_key()
Added: dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0037pre1-missing-include.patch
==============================================================================
--- (empty file)
+++ dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0037pre1-missing-include.patch Mon Feb 9 15:47:53 2009
@@ -0,0 +1,26 @@
+commit f17d30a803e8434c4ef381bb5cfa1956ff0201f0
+Author: Adrian Bunk <bunk at kernel.org>
+Date: Wed Feb 6 01:36:44 2008 -0800
+
+ kernel/ptrace.c should #include <linux/syscalls.h>
+
+ Every file should include the headers containing the prototypes for its global
+ functions (in this case sys_ptrace()).
+
+ Signed-off-by: Adrian Bunk <bunk at kernel.org>
+ Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
+ Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
+
+Adjusted to apply to Debian's 2.6.18 by dann frazier <dannf at debian.org>
+
+diff -urpN a/kernel/ptrace.c b/kernel/ptrace.c
+--- a/kernel/ptrace.c 2009-01-28 23:17:04.000000000 -0700
++++ b/kernel/ptrace.c 2009-01-28 23:27:34.000000000 -0700
+@@ -18,6 +18,7 @@
+ #include <linux/ptrace.h>
+ #include <linux/security.h>
+ #include <linux/signal.h>
++#include <linux/syscalls.h>
+
+ #include <asm/pgtable.h>
+ #include <asm/uaccess.h>
Modified: dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0038-System-call-wrappers-part-28.patch
==============================================================================
--- /dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/0038-System-call-wrappers-part-28.patch (original)
+++ dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0038-System-call-wrappers-part-28.patch Mon Feb 9 15:47:53 2009
@@ -10,12 +10,12 @@
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.24 by dann frazier <dannf at debian.org>
+Backported to Debian's 2.6.18 by dann frazier <dannf at debian.org>
-diff -urpN linux-source-2.6.24.orig/fs/inotify_user.c linux-source-2.6.24/fs/inotify_user.c
---- linux-source-2.6.24.orig/fs/inotify_user.c 2008-10-10 00:11:27.000000000 -0600
-+++ linux-source-2.6.24/fs/inotify_user.c 2009-01-21 01:21:24.000000000 -0700
-@@ -540,7 +540,7 @@ static const struct inotify_operations i
+diff -urpN linux-source-2.6.18.orig/fs/inotify_user.c linux-source-2.6.18/fs/inotify_user.c
+--- linux-source-2.6.18.orig/fs/inotify_user.c 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/fs/inotify_user.c 2009-01-26 08:41:20.000000000 -0700
+@@ -531,7 +531,7 @@ static const struct inotify_operations i
.destroy_watch = free_inotify_user_watch,
};
@@ -24,10 +24,10 @@
{
struct inotify_device *dev;
struct inotify_handle *ih;
-diff -urpN linux-source-2.6.24.orig/fs/ioprio.c linux-source-2.6.24/fs/ioprio.c
---- linux-source-2.6.24.orig/fs/ioprio.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/fs/ioprio.c 2009-01-21 01:21:24.000000000 -0700
-@@ -55,7 +55,7 @@ static int set_task_ioprio(struct task_s
+diff -urpN linux-source-2.6.18.orig/fs/ioprio.c linux-source-2.6.18/fs/ioprio.c
+--- linux-source-2.6.18.orig/fs/ioprio.c 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/fs/ioprio.c 2009-01-26 08:41:20.000000000 -0700
+@@ -54,7 +54,7 @@ static int set_task_ioprio(struct task_s
return 0;
}
@@ -36,7 +36,7 @@
{
int class = IOPRIO_PRIO_CLASS(ioprio);
int data = IOPRIO_PRIO_DATA(ioprio);
-@@ -171,7 +171,7 @@ int ioprio_best(unsigned short aprio, un
+@@ -163,7 +163,7 @@ int ioprio_best(unsigned short aprio, un
return aprio;
}
@@ -45,15 +45,15 @@
{
struct task_struct *g, *p;
struct user_struct *user;
-@@ -235,4 +235,3 @@ asmlinkage long sys_ioprio_get(int which
- read_unlock(&tasklist_lock);
+@@ -224,4 +224,3 @@ asmlinkage long sys_ioprio_get(int which
+ read_unlock_irq(&tasklist_lock);
return ret;
}
-
-diff -urpN linux-source-2.6.24.orig/mm/mempolicy.c linux-source-2.6.24/mm/mempolicy.c
---- linux-source-2.6.24.orig/mm/mempolicy.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/mm/mempolicy.c 2009-01-21 01:21:24.000000000 -0700
-@@ -904,10 +904,9 @@ static int copy_nodes_to_user(unsigned l
+diff -urpN linux-source-2.6.18.orig/mm/mempolicy.c linux-source-2.6.18/mm/mempolicy.c
+--- linux-source-2.6.18.orig/mm/mempolicy.c 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/mm/mempolicy.c 2009-01-26 08:41:20.000000000 -0700
+@@ -866,10 +866,9 @@ static int copy_nodes_to_user(unsigned l
return copy_to_user(mask, nodes_addr(*nodes), copy) ? -EFAULT : 0;
}
@@ -67,7 +67,7 @@
{
nodemask_t nodes;
int err;
-@@ -923,8 +922,8 @@ asmlinkage long sys_mbind(unsigned long
+@@ -881,8 +880,8 @@ asmlinkage long sys_mbind(unsigned long
}
/* Set the process memory policy */
@@ -78,7 +78,7 @@
{
int err;
nodemask_t nodes;
-@@ -937,9 +936,9 @@ asmlinkage long sys_set_mempolicy(int mo
+@@ -895,9 +894,9 @@ asmlinkage long sys_set_mempolicy(int mo
return do_set_mempolicy(mode, &nodes);
}
@@ -91,7 +91,7 @@
{
struct mm_struct *mm;
struct task_struct *task;
-@@ -1007,10 +1006,9 @@ out:
+@@ -960,10 +959,9 @@ out:
/* Retrieve NUMA policy */
@@ -103,12 +103,12 @@
+ 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.24.orig/mm/migrate.c linux-source-2.6.24/mm/migrate.c
---- linux-source-2.6.24.orig/mm/migrate.c 2009-01-21 01:20:29.000000000 -0700
-+++ linux-source-2.6.24/mm/migrate.c 2009-01-21 01:21:24.000000000 -0700
-@@ -915,10 +915,10 @@ set_status:
+ int err, pval;
+ nodemask_t nodes;
+diff -urpN linux-source-2.6.18.orig/mm/migrate.c linux-source-2.6.18/mm/migrate.c
+--- linux-source-2.6.18.orig/mm/migrate.c 2009-01-25 23:22:47.000000000 -0700
++++ linux-source-2.6.18/mm/migrate.c 2009-01-26 08:41:20.000000000 -0700
+@@ -860,10 +860,10 @@ set_status:
* Move a list of pages in the address space of the currently executing
* process.
*/
@@ -123,9 +123,9 @@
{
int err = 0;
int i;
-diff -urpN linux-source-2.6.24.orig/security/keys/keyctl.c linux-source-2.6.24/security/keys/keyctl.c
---- linux-source-2.6.24.orig/security/keys/keyctl.c 2009-01-21 01:18:48.000000000 -0700
-+++ linux-source-2.6.24/security/keys/keyctl.c 2009-01-21 01:21:24.000000000 -0700
+diff -urpN linux-source-2.6.18.orig/security/keys/keyctl.c linux-source-2.6.18/security/keys/keyctl.c
+--- linux-source-2.6.18.orig/security/keys/keyctl.c 2009-01-25 23:20:42.000000000 -0700
++++ linux-source-2.6.18/security/keys/keyctl.c 2009-01-26 08:41:20.000000000 -0700
@@ -1059,8 +1059,8 @@ error:
/*
* the key control system call
Added: dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0038pre2-missing-include.patch
==============================================================================
--- (empty file)
+++ dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0038pre2-missing-include.patch Mon Feb 9 15:47:53 2009
@@ -0,0 +1,11 @@
+diff -urpN a/mm/mempolicy.c b/mm/mempolicy.c
+--- a/mm/mempolicy.c 2009-02-07 15:19:57.000000000 -0700
++++ b/mm/mempolicy.c 2009-02-07 15:24:57.000000000 -0700
+@@ -89,6 +89,7 @@
+ #include <linux/migrate.h>
+ #include <linux/rmap.h>
+ #include <linux/security.h>
++#include <linux/syscalls.h>
+
+ #include <asm/tlbflush.h>
+ #include <asm/uaccess.h>
Modified: dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0039-System-call-wrappers-part-29.patch
==============================================================================
--- /dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/0039-System-call-wrappers-part-29.patch (original)
+++ dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0039-System-call-wrappers-part-29.patch Mon Feb 9 15:47:53 2009
@@ -10,12 +10,12 @@
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.24 by dann frazier <dannf at debian.org>
+Backported to Debian's 2.6.18 by dann frazier <dannf at debian.org>
-diff -urpN linux-source-2.6.24.orig/fs/inotify_user.c linux-source-2.6.24/fs/inotify_user.c
---- linux-source-2.6.24.orig/fs/inotify_user.c 2009-01-21 01:21:24.000000000 -0700
-+++ linux-source-2.6.24/fs/inotify_user.c 2009-01-21 01:21:53.000000000 -0700
-@@ -611,7 +611,8 @@ out_put_fd:
+diff -urpN linux-source-2.6.18.orig/fs/inotify_user.c linux-source-2.6.18/fs/inotify_user.c
+--- linux-source-2.6.18.orig/fs/inotify_user.c 2009-01-26 08:41:55.000000000 -0700
++++ linux-source-2.6.18/fs/inotify_user.c 2009-01-26 08:42:08.000000000 -0700
+@@ -602,7 +602,8 @@ out_put_fd:
return ret;
}
@@ -25,7 +25,7 @@
{
struct inode *inode;
struct inotify_device *dev;
-@@ -655,7 +656,7 @@ fput_and_out:
+@@ -646,7 +647,7 @@ fput_and_out:
return ret;
}
@@ -34,10 +34,10 @@
{
struct file *filp;
struct inotify_device *dev;
-diff -urpN linux-source-2.6.24.orig/fs/namei.c linux-source-2.6.24/fs/namei.c
---- linux-source-2.6.24.orig/fs/namei.c 2009-01-21 01:13:36.000000000 -0700
-+++ linux-source-2.6.24/fs/namei.c 2009-01-21 01:21:53.000000000 -0700
-@@ -1957,8 +1957,8 @@ int vfs_mknod(struct inode *dir, struct
+diff -urpN linux-source-2.6.18.orig/fs/namei.c linux-source-2.6.18/fs/namei.c
+--- linux-source-2.6.18.orig/fs/namei.c 2009-01-25 23:09:50.000000000 -0700
++++ linux-source-2.6.18/fs/namei.c 2009-01-26 08:42:08.000000000 -0700
+@@ -1840,8 +1840,8 @@ int vfs_mknod(struct inode *dir, struct
return error;
}
@@ -48,7 +48,7 @@
{
int error = 0;
char * tmp;
-@@ -2034,7 +2034,7 @@ int vfs_mkdir(struct inode *dir, struct
+@@ -1917,7 +1917,7 @@ int vfs_mkdir(struct inode *dir, struct
return error;
}
@@ -57,7 +57,7 @@
{
int error = 0;
char * tmp;
-@@ -2262,7 +2262,7 @@ slashes:
+@@ -2143,7 +2143,7 @@ slashes:
goto exit2;
}
@@ -66,7 +66,7 @@
{
if ((flag & ~AT_REMOVEDIR) != 0)
return -EINVAL;
-@@ -2299,8 +2299,8 @@ int vfs_symlink(struct inode *dir, struc
+@@ -2180,8 +2180,8 @@ int vfs_symlink(struct inode *dir, struc
return error;
}
@@ -77,7 +77,7 @@
{
int error = 0;
char * from;
-@@ -2388,9 +2388,8 @@ int vfs_link(struct dentry *old_dentry,
+@@ -2266,9 +2266,8 @@ int vfs_link(struct dentry *old_dentry,
* with linux 2.0, and to avoid hard-linking to directories
* and other special files. --ADM
*/
@@ -89,7 +89,7 @@
{
struct dentry *new_dentry;
struct nameidata nd, old_nd;
-@@ -2661,8 +2660,8 @@ exit:
+@@ -2538,8 +2537,8 @@ exit:
return error;
}
Modified: dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0040-System-call-wrappers-part-30.patch
==============================================================================
--- /dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/0040-System-call-wrappers-part-30.patch (original)
+++ dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0040-System-call-wrappers-part-30.patch Mon Feb 9 15:47:53 2009
@@ -10,12 +10,22 @@
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.24 by dann frazier <dannf at debian.org>
+Backported to Debian's 2.6.18 by dann frazier <dannf at debian.org>
-diff -urpN linux-source-2.6.24.orig/fs/open.c linux-source-2.6.24/fs/open.c
---- linux-source-2.6.24.orig/fs/open.c 2009-01-21 01:13:36.000000000 -0700
-+++ linux-source-2.6.24/fs/open.c 2009-01-21 01:22:18.000000000 -0700
-@@ -437,7 +437,7 @@ SYSCALL_ALIAS(sys_fallocate, SyS_falloca
+diff -urpN linux-source-2.6.18.orig/fs/open.c linux-source-2.6.18/fs/open.c
+--- linux-source-2.6.18.orig/fs/open.c 2009-01-25 23:09:50.000000000 -0700
++++ linux-source-2.6.18/fs/open.c 2009-01-26 08:42:38.000000000 -0700
+@@ -484,7 +484,8 @@ out:
+ return error;
+ }
+
+-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];
+
+@@ -505,7 +506,7 @@ SYSCALL_DEFINE2(utimes, char __user *, f
* We do this by temporarily clearing all FS-related capabilities and
* switching the fsuid/fsgid around to the real ones.
*/
@@ -24,7 +34,7 @@
{
struct nameidata nd;
int old_fsuid, old_fsgid;
-@@ -610,8 +610,7 @@ out:
+@@ -671,8 +672,7 @@ out:
return err;
}
@@ -34,7 +44,7 @@
{
struct nameidata nd;
struct inode * inode;
-@@ -700,8 +699,8 @@ out:
+@@ -759,8 +759,8 @@ SYSCALL_DEFINE3(chown, const char __user
return error;
}
@@ -45,9 +55,9 @@
{
struct nameidata nd;
int error = -EINVAL;
-@@ -1081,8 +1080,8 @@ SYSCALL_DEFINE3(open, const char __user
+@@ -1126,8 +1126,8 @@ SYSCALL_DEFINE3(open, const char __user
}
- EXPORT_UNUSED_SYMBOL_GPL(sys_open); /* To be deleted for 2.6.25 */
+ EXPORT_SYMBOL_GPL(sys_open);
-asmlinkage long sys_openat(int dfd, const char __user *filename, int flags,
- int mode)
@@ -56,10 +66,10 @@
{
long ret;
-diff -urpN linux-source-2.6.24.orig/fs/stat.c linux-source-2.6.24/fs/stat.c
---- linux-source-2.6.24.orig/fs/stat.c 2009-01-21 01:11:46.000000000 -0700
-+++ linux-source-2.6.24/fs/stat.c 2009-01-21 01:22:18.000000000 -0700
-@@ -260,8 +260,8 @@ SYSCALL_DEFINE2(newlstat, char __user *,
+diff -urpN linux-source-2.6.18.orig/fs/stat.c linux-source-2.6.18/fs/stat.c
+--- linux-source-2.6.18.orig/fs/stat.c 2009-01-25 23:03:51.000000000 -0700
++++ linux-source-2.6.18/fs/stat.c 2009-01-26 08:42:33.000000000 -0700
+@@ -263,8 +263,8 @@ SYSCALL_DEFINE2(newlstat, char __user *,
}
#if !defined(__ARCH_WANT_STAT64) || defined(__ARCH_WANT_SYS_NEWFSTATAT)
@@ -70,7 +80,7 @@
{
struct kstat stat;
int error = -EINVAL;
-@@ -293,8 +293,8 @@ SYSCALL_DEFINE2(newfstat, unsigned int,
+@@ -296,8 +296,8 @@ SYSCALL_DEFINE2(newfstat, unsigned int,
return error;
}
@@ -81,7 +91,7 @@
{
struct nameidata nd;
int error;
-@@ -399,8 +399,8 @@ SYSCALL_DEFINE2(fstat64, unsigned long,
+@@ -400,8 +400,8 @@ SYSCALL_DEFINE2(fstat64, unsigned long,
return error;
}
@@ -92,33 +102,10 @@
{
struct kstat stat;
int error = -EINVAL;
-diff -urpN linux-source-2.6.24.orig/fs/utimes.c linux-source-2.6.24/fs/utimes.c
---- linux-source-2.6.24.orig/fs/utimes.c 2009-01-21 01:13:03.000000000 -0700
-+++ linux-source-2.6.24/fs/utimes.c 2009-01-21 01:22:18.000000000 -0700
-@@ -155,7 +155,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];
-
-@@ -180,7 +181,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.24.orig/kernel/fork.c linux-source-2.6.24/kernel/fork.c
---- linux-source-2.6.24.orig/kernel/fork.c 2009-01-21 01:01:27.000000000 -0700
-+++ linux-source-2.6.24/kernel/fork.c 2009-01-21 01:22:18.000000000 -0700
-@@ -1638,7 +1638,7 @@ static int unshare_semundo(unsigned long
+diff -urpN linux-source-2.6.18.orig/kernel/fork.c linux-source-2.6.18/kernel/fork.c
+--- linux-source-2.6.18.orig/kernel/fork.c 2009-01-25 21:07:13.000000000 -0700
++++ linux-source-2.6.18/kernel/fork.c 2009-01-26 08:42:38.000000000 -0700
+@@ -1588,7 +1588,7 @@ static int unshare_semundo(unsigned long
* constructed. Here we are modifying the current, active,
* task_struct.
*/
Modified: dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0041-System-call-wrappers-part-31.patch
==============================================================================
--- /dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/0041-System-call-wrappers-part-31.patch (original)
+++ dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0041-System-call-wrappers-part-31.patch Mon Feb 9 15:47:53 2009
@@ -10,28 +10,15 @@
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.24 by dann frazier <dannf at debian.org>
+Backported to Debian's 2.6.18 by dann frazier <dannf at debian.org>
-diff -urpN linux-source-2.6.24.orig/fs/signalfd.c linux-source-2.6.24/fs/signalfd.c
---- linux-source-2.6.24.orig/fs/signalfd.c 2008-10-10 00:11:28.000000000 -0600
-+++ linux-source-2.6.24/fs/signalfd.c 2009-01-21 01:22:49.000000000 -0700
-@@ -204,7 +204,8 @@ static const struct file_operations sign
- .read = signalfd_read,
- };
+diff -urpN linux-source-2.6.18.orig/fs/splice.c linux-source-2.6.18/fs/splice.c
+--- linux-source-2.6.18.orig/fs/splice.c 2008-12-25 14:04:14.000000000 -0700
++++ linux-source-2.6.18/fs/splice.c 2009-01-26 08:47:27.000000000 -0700
+@@ -1277,8 +1277,8 @@ static long do_vmsplice(struct file *fil
+ return splice_to_pipe(pipe, &spd);
+ }
--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)
- {
- int error;
- sigset_t sigmask;
-diff -urpN linux-source-2.6.24.orig/fs/splice.c linux-source-2.6.24/fs/splice.c
---- linux-source-2.6.24.orig/fs/splice.c 2008-10-10 00:11:29.000000000 -0600
-+++ linux-source-2.6.24/fs/splice.c 2009-01-21 01:22:49.000000000 -0700
-@@ -1478,8 +1478,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,
@@ -39,7 +26,7 @@
{
struct file *file;
long error;
-@@ -1504,9 +1504,9 @@ asmlinkage long sys_vmsplice(int fd, con
+@@ -1296,9 +1296,9 @@ asmlinkage long sys_vmsplice(int fd, con
return error;
}
@@ -52,7 +39,7 @@
{
long error;
struct file *in, *out;
-@@ -1724,7 +1724,7 @@ static long do_tee(struct file *in, stru
+@@ -1523,7 +1523,7 @@ static long do_tee(struct file *in, stru
return ret;
}
@@ -61,10 +48,10 @@
{
struct file *in;
int error, fput_in;
-diff -urpN linux-source-2.6.24.orig/kernel/futex.c linux-source-2.6.24/kernel/futex.c
---- linux-source-2.6.24.orig/kernel/futex.c 2009-01-21 01:01:27.000000000 -0700
-+++ linux-source-2.6.24/kernel/futex.c 2009-01-21 01:22:49.000000000 -0700
-@@ -1854,9 +1854,8 @@ error:
+diff -urpN linux-source-2.6.18.orig/kernel/futex.c linux-source-2.6.18/kernel/futex.c
+--- linux-source-2.6.18.orig/kernel/futex.c 2009-01-25 21:07:13.000000000 -0700
++++ linux-source-2.6.18/kernel/futex.c 2009-01-26 08:46:56.000000000 -0700
+@@ -1590,9 +1590,8 @@ error:
* @head: pointer to the list-head
* @len: length of the list-head, as userspace expects
*/
@@ -74,32 +61,18 @@
+SYSCALL_DEFINE2(set_robust_list, struct robust_list_head __user *, head,
+ size_t, len)
{
- if (!futex_cmpxchg_enabled)
- return -ENOSYS;
-@@ -1877,9 +1876,9 @@ sys_set_robust_list(struct robust_list_h
+ /*
+ * The kernel knows only one size for now:
+@@ -1611,9 +1610,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,
+-sys_get_robust_list(int pid, struct robust_list_head __user **head_ptr,
- size_t __user *len_ptr)
+SYSCALL_DEFINE3(get_robust_list, int, pid,
-+ struct robust_list_head __user * __user *, head_ptr,
++ struct robust_list_head __user **, head_ptr,
+ size_t __user *, len_ptr)
{
- struct robust_list_head __user *head;
+ struct robust_list_head *head;
unsigned long ret;
-diff -urpN linux-source-2.6.24.orig/kernel/sys.c linux-source-2.6.24/kernel/sys.c
---- linux-source-2.6.24.orig/kernel/sys.c 2009-01-21 01:18:10.000000000 -0700
-+++ linux-source-2.6.24/kernel/sys.c 2009-01-21 01:22:49.000000000 -0700
-@@ -1751,8 +1751,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();
Modified: dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0042-System-call-wrappers-part-32.patch
==============================================================================
--- /dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/0042-System-call-wrappers-part-32.patch (original)
+++ dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0042-System-call-wrappers-part-32.patch Mon Feb 9 15:47:53 2009
@@ -10,24 +10,12 @@
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.24 by dann frazier <dannf at debian.org>
+Backported to Debian's 2.6.18 by dann frazier <dannf at debian.org>
-diff -urpN linux-source-2.6.24.orig/fs/eventfd.c linux-source-2.6.24/fs/eventfd.c
---- linux-source-2.6.24.orig/fs/eventfd.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/fs/eventfd.c 2009-01-21 01:25:43.000000000 -0700
-@@ -197,7 +197,7 @@ struct file *eventfd_fget(int fd)
- return file;
- }
-
--asmlinkage long sys_eventfd(unsigned int count)
-+SYSCALL_DEFINE1(eventfd, unsigned int, count)
- {
- int error, fd;
- struct eventfd_ctx *ctx;
-diff -urpN linux-source-2.6.24.orig/fs/readdir.c linux-source-2.6.24/fs/readdir.c
---- linux-source-2.6.24.orig/fs/readdir.c 2009-01-21 01:14:06.000000000 -0700
-+++ linux-source-2.6.24/fs/readdir.c 2009-01-21 01:25:43.000000000 -0700
-@@ -97,7 +97,8 @@ efault:
+diff -urpN linux-source-2.6.18.orig/fs/readdir.c linux-source-2.6.18/fs/readdir.c
+--- linux-source-2.6.18.orig/fs/readdir.c 2009-01-25 23:10:13.000000000 -0700
++++ linux-source-2.6.18/fs/readdir.c 2009-01-26 08:49:49.000000000 -0700
+@@ -94,7 +94,8 @@ efault:
return -EFAULT;
}
@@ -37,10 +25,10 @@
{
int error;
struct file * file;
-diff -urpN linux-source-2.6.24.orig/fs/select.c linux-source-2.6.24/fs/select.c
---- linux-source-2.6.24.orig/fs/select.c 2009-01-21 01:15:04.000000000 -0700
-+++ linux-source-2.6.24/fs/select.c 2009-01-21 01:26:21.000000000 -0700
-@@ -512,8 +512,9 @@ sticky:
+diff -urpN linux-source-2.6.18.orig/fs/select.c linux-source-2.6.18/fs/select.c
+--- linux-source-2.6.18.orig/fs/select.c 2009-01-25 23:16:04.000000000 -0700
++++ linux-source-2.6.18/fs/select.c 2009-01-26 08:49:49.000000000 -0700
+@@ -520,8 +520,9 @@ sticky:
* which has a pointer to the sigset_t itself followed by a size_t containing
* the sigset size.
*/
@@ -52,7 +40,7 @@
{
size_t sigsetsize = 0;
sigset_t __user *up = NULL;
-@@ -760,9 +761,9 @@ SYSCALL_DEFINE3(poll, struct pollfd __us
+@@ -765,9 +766,9 @@ SYSCALL_DEFINE3(poll, struct pollfd __us
}
#ifdef TIF_RESTORE_SIGMASK
@@ -65,12 +53,12 @@
{
sigset_t ksigmask, sigsaved;
struct timespec ts;
-diff -urpN linux-source-2.6.24.orig/include/linux/syscalls.h linux-source-2.6.24/include/linux/syscalls.h
---- linux-source-2.6.24.orig/include/linux/syscalls.h 2009-01-21 00:45:15.000000000 -0700
-+++ linux-source-2.6.24/include/linux/syscalls.h 2009-01-21 01:25:43.000000000 -0700
-@@ -668,6 +668,13 @@ asmlinkage long sys_timerfd(int ufd, int
- asmlinkage long sys_eventfd(unsigned int count);
- asmlinkage long sys_fallocate(int fd, int mode, loff_t offset, loff_t len);
+diff -urpN linux-source-2.6.18.orig/include/linux/syscalls.h linux-source-2.6.18/include/linux/syscalls.h
+--- linux-source-2.6.18.orig/include/linux/syscalls.h 2009-01-25 21:05:36.000000000 -0700
++++ linux-source-2.6.18/include/linux/syscalls.h 2009-01-26 08:49:49.000000000 -0700
+@@ -653,5 +653,12 @@ asmlinkage long sys_get_robust_list(int
+ asmlinkage long sys_set_robust_list(struct robust_list_head __user *head,
+ size_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 *,
@@ -80,12 +68,11 @@
+ 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.24.orig/kernel/signal.c linux-source-2.6.24/kernel/signal.c
---- linux-source-2.6.24.orig/kernel/signal.c 2009-01-21 01:02:55.000000000 -0700
-+++ linux-source-2.6.24/kernel/signal.c 2009-01-21 01:25:43.000000000 -0700
-@@ -2475,11 +2475,10 @@ out:
+ #endif
+diff -urpN linux-source-2.6.18.orig/kernel/signal.c linux-source-2.6.18/kernel/signal.c
+--- linux-source-2.6.18.orig/kernel/signal.c 2009-01-25 21:07:37.000000000 -0700
++++ linux-source-2.6.18/kernel/signal.c 2009-01-26 08:49:49.000000000 -0700
+@@ -2455,11 +2455,10 @@ out:
#endif /* __ARCH_WANT_SYS_SIGPROCMASK */
#ifdef __ARCH_WANT_SYS_RT_SIGACTION
@@ -101,7 +88,7 @@
{
struct k_sigaction new_sa, old_sa;
int ret = -EINVAL;
-@@ -2562,7 +2561,7 @@ SYSCALL_DEFINE0(pause)
+@@ -2542,7 +2541,7 @@ SYSCALL_DEFINE0(pause)
#endif
#ifdef __ARCH_WANT_SYS_RT_SIGSUSPEND
@@ -110,17 +97,3 @@
{
sigset_t newset;
-diff -urpN linux-source-2.6.24.orig/fs/timerfd.c linux-source-2.6.24/fs/timerfd.c
---- linux-source-2.6.24.orig/fs/timerfd.c 2009-01-21 01:25:43.000000000 -0700
-+++ linux-source-2.6.24/fs/timerfd.c 2009-01-21 01:30:08.000000000 -0700
-@@ -150,8 +150,8 @@ static const struct file_operations time
- .read = timerfd_read,
- };
-
--asmlinkage long sys_timerfd(int ufd, int clockid, int flags,
-- const struct itimerspec __user *utmr)
-+SYSCALL_DEFINE4(timerfd, int, ufd, int, clockid, int, flags,
-+ const struct itimerspec __user *, utmr)
- {
- int error;
- struct timerfd_ctx *ctx;
Modified: dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0043-System-call-wrappers-part-33.patch
==============================================================================
--- /dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/0043-System-call-wrappers-part-33.patch (original)
+++ dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0043-System-call-wrappers-part-33.patch Mon Feb 9 15:47:53 2009
@@ -10,12 +10,12 @@
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.24 by dann frazier <dannf at debian.org>
+Adjusted to apply to Debian's 2.6.18 by dann frazier <dannf at debian.org>
-diff -urpN linux-source-2.6.24.orig/fs/pipe.c linux-source-2.6.24/fs/pipe.c
---- linux-source-2.6.24.orig/fs/pipe.c 2009-01-21 00:29:57.000000000 -0700
-+++ linux-source-2.6.24/fs/pipe.c 2009-01-21 01:31:29.000000000 -0700
-@@ -1079,7 +1079,7 @@ int do_pipe(int *fd)
+diff -urpN linux-source-2.6.18.orig/fs/pipe.c linux-source-2.6.18/fs/pipe.c
+--- linux-source-2.6.18.orig/fs/pipe.c 2009-01-26 08:51:59.000000000 -0700
++++ linux-source-2.6.18/fs/pipe.c 2009-01-26 08:52:31.000000000 -0700
+@@ -978,7 +978,7 @@ no_files:
* sys_pipe() is the normal C calling standard for creating
* a pipe. It's not the way Unix traditionally does this, though.
*/
@@ -24,14 +24,13 @@
{
int fd[2];
int error;
-diff -urpN linux-source-2.6.24.orig/include/linux/syscalls.h linux-source-2.6.24/include/linux/syscalls.h
---- linux-source-2.6.24.orig/include/linux/syscalls.h 2009-01-21 01:25:43.000000000 -0700
-+++ linux-source-2.6.24/include/linux/syscalls.h 2009-01-21 01:31:29.000000000 -0700
-@@ -675,6 +675,7 @@ asmlinkage long sys_ppoll(struct pollfd
+diff -urpN linux-source-2.6.18.orig/include/linux/syscalls.h linux-source-2.6.18/include/linux/syscalls.h
+--- linux-source-2.6.18.orig/include/linux/syscalls.h 2009-01-26 08:49:49.000000000 -0700
++++ linux-source-2.6.18/include/linux/syscalls.h 2009-01-26 08:52:31.000000000 -0700
+@@ -660,5 +660,6 @@ 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[]);
-
+ #endif
Modified: dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0043pre1-missing-include.patch
==============================================================================
--- /dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/0043pre1-missing-include.patch (original)
+++ dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0043pre1-missing-include.patch Mon Feb 9 15:47:53 2009
@@ -1,10 +1,10 @@
-diff -urpN linux-source-2.6.24.orig/fs/pipe.c linux-source-2.6.24/fs/pipe.c
---- linux-source-2.6.24.orig/fs/pipe.c 2009-01-21 09:02:19.000000000 -0700
-+++ linux-source-2.6.24/fs/pipe.c 2009-01-21 09:03:06.000000000 -0700
-@@ -17,6 +17,7 @@
+diff -urpN linux-source-2.6.18.orig/fs/pipe.c linux-source-2.6.18/fs/pipe.c
+--- linux-source-2.6.18.orig/fs/pipe.c 2009-01-25 21:05:36.000000000 -0700
++++ linux-source-2.6.18/fs/pipe.c 2009-01-26 08:51:59.000000000 -0700
+@@ -16,6 +16,7 @@
+ #include <linux/uio.h>
#include <linux/highmem.h>
#include <linux/pagemap.h>
- #include <linux/audit.h>
+#include <linux/syscalls.h>
#include <asm/uaccess.h>
Modified: dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0044-s390-specific-system-call-wrappers.patch
==============================================================================
--- /dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/0044-s390-specific-system-call-wrappers.patch (original)
+++ dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0044-s390-specific-system-call-wrappers.patch Mon Feb 9 15:47:53 2009
@@ -10,32 +10,32 @@
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.24 by dann frazier <dannf at debian.org>
+Adjusted to apply to Debian's 2.6.18 by dann frazier <dannf at debian.org>
-diff -urpN linux-source-2.6.24.orig/arch/s390/kernel/compat_wrapper.S linux-source-2.6.24/arch/s390/kernel/compat_wrapper.S
---- linux-source-2.6.24.orig/arch/s390/kernel/compat_wrapper.S 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/arch/s390/kernel/compat_wrapper.S 2009-01-21 01:31:52.000000000 -0700
+diff -urpN linux-source-2.6.18.orig/arch/s390/kernel/compat_wrapper.S linux-source-2.6.18/arch/s390/kernel/compat_wrapper.S
+--- linux-source-2.6.18.orig/arch/s390/kernel/compat_wrapper.S 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/arch/s390/kernel/compat_wrapper.S 2009-01-26 08:52:53.000000000 -0700
@@ -549,7 +549,7 @@ sys32_setdomainname_wrapper:
- .globl sys32_newuname_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
+ .globl compat_sys_adjtimex_wrapper
compat_sys_adjtimex_wrapper:
@@ -617,7 +617,7 @@ sys32_sysfs_wrapper:
- .globl sys32_personality_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
+ .globl sys32_setfsuid16_wrapper
sys32_setfsuid16_wrapper:
-diff -urpN linux-source-2.6.24.orig/arch/s390/kernel/process.c linux-source-2.6.24/arch/s390/kernel/process.c
---- linux-source-2.6.24.orig/arch/s390/kernel/process.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/arch/s390/kernel/process.c 2009-01-21 01:32:50.000000000 -0700
+diff -urpN linux-source-2.6.18.orig/arch/s390/kernel/process.c linux-source-2.6.18/arch/s390/kernel/process.c
+--- linux-source-2.6.18.orig/arch/s390/kernel/process.c 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/arch/s390/kernel/process.c 2009-01-26 09:08:21.000000000 -0700
@@ -36,7 +36,7 @@
#include <linux/init.h>
#include <linux/module.h>
@@ -45,44 +45,43 @@
#include <asm/uaccess.h>
#include <asm/pgtable.h>
#include <asm/system.h>
-@@ -298,13 +298,13 @@ int copy_thread(int nr, unsigned long cl
+@@ -279,12 +279,12 @@ int copy_thread(int nr, unsigned long cl
return 0;
}
--asmlinkage long sys_fork(void)
-+SYSCALL_DEFINE0(fork)
+-asmlinkage long sys_fork(struct pt_regs regs)
++SYSCALL_DEFINE1(fork, struct pt_regs, regs)
{
- struct pt_regs *regs = task_pt_regs(current);
- return do_fork(SIGCHLD, regs->gprs[15], regs, 0, NULL, NULL);
+ return do_fork(SIGCHLD, regs.gprs[15], ®s, 0, NULL, NULL);
}
--asmlinkage long sys_clone(void)
-+SYSCALL_DEFINE0(clone)
+-asmlinkage long sys_clone(struct pt_regs regs)
++SYSCALL_DEFINE1(clone, struct pt_regs, regs)
{
- struct pt_regs *regs = task_pt_regs(current);
- unsigned long clone_flags;
-@@ -331,7 +331,7 @@ asmlinkage long sys_clone(void)
+ unsigned long clone_flags;
+ unsigned long newsp;
+@@ -310,7 +310,7 @@ asmlinkage long sys_clone(struct pt_regs
* do not have enough call-clobbered registers to hold all
* the information you need.
*/
--asmlinkage long sys_vfork(void)
-+SYSCALL_DEFINE0(vfork)
+-asmlinkage long sys_vfork(struct pt_regs regs)
++SYSCALL_DEFINE1(vfork, struct pt_regs, regs)
{
- struct pt_regs *regs = task_pt_regs(current);
return do_fork(CLONE_VFORK | CLONE_VM | SIGCHLD,
-@@ -351,7 +351,7 @@ asmlinkage void execve_tail(void)
+ regs.gprs[15], ®s, 0, NULL, NULL);
+@@ -319,7 +319,7 @@ asmlinkage long sys_vfork(struct pt_regs
/*
* sys_execve() executes a new program.
*/
--asmlinkage long sys_execve(void)
-+SYSCALL_DEFINE0(execve)
+-asmlinkage long sys_execve(struct pt_regs regs)
++SYSCALL_DEFINE1(execve, struct pt_regs, regs)
{
- struct pt_regs *regs = task_pt_regs(current);
- char *filename;
-diff -urpN linux-source-2.6.24.orig/arch/s390/kernel/signal.c linux-source-2.6.24/arch/s390/kernel/signal.c
---- linux-source-2.6.24.orig/arch/s390/kernel/signal.c 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/arch/s390/kernel/signal.c 2009-01-21 01:31:56.000000000 -0700
-@@ -24,6 +24,7 @@
+ int error;
+ char * filename;
+diff -urpN linux-source-2.6.18.orig/arch/s390/kernel/signal.c linux-source-2.6.18/arch/s390/kernel/signal.c
+--- linux-source-2.6.18.orig/arch/s390/kernel/signal.c 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/arch/s390/kernel/signal.c 2009-01-26 08:54:25.000000000 -0700
+@@ -25,6 +25,7 @@
#include <linux/tty.h>
#include <linux/personality.h>
#include <linux/binfmts.h>
@@ -90,7 +89,7 @@
#include <asm/ucontext.h>
#include <asm/uaccess.h>
#include <asm/lowcore.h>
-@@ -51,8 +52,7 @@ typedef struct
+@@ -52,8 +53,7 @@ typedef struct
/*
* Atomically swap in the new signal mask, and wait for a signal.
*/
@@ -100,7 +99,7 @@
{
mask &= _BLOCKABLE;
spin_lock_irq(¤t->sighand->siglock);
-@@ -68,9 +68,8 @@ sys_sigsuspend(int history0, int history
+@@ -69,9 +69,8 @@ sys_sigsuspend(int history0, int history
return -ERESTARTNOHAND;
}
@@ -112,45 +111,21 @@
{
struct k_sigaction new_ka, old_ka;
int ret;
-@@ -100,15 +99,13 @@ sys_sigaction(int sig, const struct old_
+@@ -101,9 +100,8 @@ 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)
+-sys_sigaltstack(const stack_t __user *uss, stack_t __user *uoss,
+- struct pt_regs *regs)
++SYSCALL_DEFINE3(sigaltstack, const stack_t __user *, uss,
++ stack_t __user *, uoss, struct pt_regs *, regs)
{
- 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)
- {
-@@ -162,7 +159,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];
-@@ -189,7 +186,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.24.orig/arch/s390/kernel/syscalls.S linux-source-2.6.24/arch/s390/kernel/syscalls.S
---- linux-source-2.6.24.orig/arch/s390/kernel/syscalls.S 2008-01-24 15:58:37.000000000 -0700
-+++ linux-source-2.6.24/arch/s390/kernel/syscalls.S 2009-01-21 01:31:56.000000000 -0700
+diff -urpN linux-source-2.6.18.orig/arch/s390/kernel/syscalls.S linux-source-2.6.18/arch/s390/kernel/syscalls.S
+--- linux-source-2.6.18.orig/arch/s390/kernel/syscalls.S 2006-09-19 21:42:06.000000000 -0600
++++ linux-source-2.6.18/arch/s390/kernel/syscalls.S 2009-01-26 08:52:53.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)
@@ -161,8 +136,8 @@
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_sigreturn_glue,sys_sigreturn_glue,sys32_sigreturn_glue)
+ SYSCALL(sys_clone_glue,sys_clone_glue,sys32_clone_glue) /* 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)
@@ -196,28 +171,18 @@
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)
- SYSCALL(sys_timerfd,sys_timerfd,compat_sys_timerfd_wrapper)
-diff -urpN linux-source-2.6.24.orig/arch/s390/kernel/sys_s390.c linux-source-2.6.24/arch/s390/kernel/sys_s390.c
---- linux-source-2.6.24.orig/arch/s390/kernel/sys_s390.c 2009-01-21 00:27:49.000000000 -0700
-+++ linux-source-2.6.24/arch/s390/kernel/sys_s390.c 2009-01-21 01:33:16.000000000 -0700
-@@ -29,7 +29,7 @@
+diff -urpN linux-source-2.6.18.orig/arch/s390/kernel/sys_s390.c linux-source-2.6.18/arch/s390/kernel/sys_s390.c
+--- linux-source-2.6.18.orig/arch/s390/kernel/sys_s390.c 2009-01-25 21:05:36.000000000 -0700
++++ linux-source-2.6.18/arch/s390/kernel/sys_s390.c 2009-01-26 09:11:20.000000000 -0700
+@@ -27,6 +27,7 @@
+ #include <linux/file.h>
+ #include <linux/utsname.h>
#include <linux/personality.h>
- #include <linux/unistd.h>
- #include <linux/ipc.h>
--
+#include <linux/syscalls.h>
- #include <asm/uaccess.h>
- /* common code for old and new mmaps */
-@@ -74,7 +74,7 @@ struct mmap_arg_struct {
+ #include <asm/uaccess.h>
+ #include <asm/ipc.h>
+@@ -73,7 +74,7 @@ struct mmap_arg_struct {
unsigned long offset;
};
@@ -226,7 +191,7 @@
{
struct mmap_arg_struct a;
int error = -EFAULT;
-@@ -86,7 +86,7 @@ out:
+@@ -85,7 +86,7 @@ out:
return error;
}
@@ -235,7 +200,7 @@
{
struct mmap_arg_struct a;
long error = -EFAULT;
-@@ -127,8 +127,8 @@ asmlinkage long old_select(struct sel_ar
+@@ -126,8 +127,8 @@ asmlinkage long old_select(struct sel_ar
*
* This is really horribly ugly.
*/
@@ -246,7 +211,7 @@
{
struct ipc_kludge tmp;
int ret;
-@@ -194,7 +194,7 @@ asmlinkage long sys_ipc(uint call, int f
+@@ -193,7 +194,7 @@ asmlinkage long sys_ipc(uint call, int f
}
#ifdef CONFIG_64BIT
@@ -255,7 +220,7 @@
{
int ret = sys_newuname(name);
-@@ -205,7 +205,7 @@ asmlinkage long s390x_newuname(struct ne
+@@ -204,7 +205,7 @@ asmlinkage long s390x_newuname(struct ne
return ret;
}
@@ -264,7 +229,7 @@
{
int ret;
-@@ -224,15 +224,13 @@ asmlinkage long s390x_personality(unsign
+@@ -223,15 +224,13 @@ asmlinkage long s390x_personality(unsign
*/
#ifndef CONFIG_64BIT
@@ -282,7 +247,7 @@
struct fadvise64_64_args {
int fd;
long long offset;
-@@ -240,8 +238,7 @@ struct fadvise64_64_args {
+@@ -239,8 +238,7 @@ struct fadvise64_64_args {
int advice;
};
@@ -292,32 +257,3 @@
{
struct fadvise64_64_args a;
-@@ -250,7 +247,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 +259,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
Added: dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0090-i386-remove-sys_pipe-proto.patch
==============================================================================
--- (empty file)
+++ dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0090-i386-remove-sys_pipe-proto.patch Mon Feb 9 15:47:53 2009
@@ -0,0 +1,11 @@
+diff -urpN a/include/asm-i386/unistd.h b/include/asm-i386/unistd.h
+--- a/include/asm-i386/unistd.h 2009-01-28 22:46:43.000000000 -0700
++++ b/include/asm-i386/unistd.h 2009-01-28 23:12:27.000000000 -0700
+@@ -478,7 +478,6 @@ asmlinkage int sys_execve(struct pt_regs
+ asmlinkage int sys_clone(struct pt_regs regs);
+ asmlinkage int sys_fork(struct pt_regs regs);
+ asmlinkage int sys_vfork(struct pt_regs regs);
+-asmlinkage int sys_pipe(unsigned long __user *fildes);
+ asmlinkage long sys_iopl(unsigned long unused);
+ struct sigaction;
+ asmlinkage long sys_rt_sigaction(int sig,
Added: dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0091-avoid-abi-change.patch
==============================================================================
--- (empty file)
+++ dists/etch-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/0091-avoid-abi-change.patch Mon Feb 9 15:47:53 2009
@@ -0,0 +1,31 @@
+diff -urpN a/fs/read_write.c b/fs/read_write.c
+--- a/fs/read_write.c 2009-02-03 23:17:08.000000000 -0700
++++ b/fs/read_write.c 2009-02-04 21:31:42.000000000 -0700
+@@ -339,7 +339,12 @@ 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)*/
++#ifndef __GENKSYMS__
+ SYSCALL_DEFINE3(read, unsigned int, fd, char __user *, buf, size_t, count)
++#else
++asmlinkage ssize_t sys_read(unsigned int fd, char __user * buf, size_t count)
++#endif
+ {
+ struct file *file;
+ ssize_t ret = -EBADF;
+diff -urpN a/include/linux/syscalls.h b/include/linux/syscalls.h
+--- a/include/linux/syscalls.h 2009-02-04 21:33:34.000000000 -0700
++++ b/include/linux/syscalls.h 2009-02-04 21:53:44.000000000 -0700
+@@ -439,7 +439,11 @@ asmlinkage long sys_lseek(unsigned int f
+ asmlinkage long sys_llseek(unsigned int fd, unsigned long offset_high,
+ unsigned long offset_low, loff_t __user *result,
+ unsigned int origin);
++#ifndef __GENKSYMS__
+ asmlinkage long sys_read(unsigned int fd, char __user *buf, size_t count);
++#else
++asmlinkage ssize_t sys_read(unsigned int fd, char __user *buf, size_t count);
++#endif
+ asmlinkage long sys_readahead(int fd, loff_t offset, size_t count);
+ asmlinkage long sys_readv(unsigned long fd,
+ const struct iovec __user *vec,
Modified: dists/etch-security/linux-2.6/debian/patches/features/all/vserver/vs2.0.2.2-rc9.patch
==============================================================================
--- dists/etch-security/linux-2.6/debian/patches/features/all/vserver/vs2.0.2.2-rc9.patch (original)
+++ dists/etch-security/linux-2.6/debian/patches/features/all/vserver/vs2.0.2.2-rc9.patch Mon Feb 9 15:47:53 2009
@@ -1041,7 +1041,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)
--- linux-2.6.18.5/arch/sh/Kconfig 2006-09-20 16:58:01 +0200
@@ -13840,25 +13840,25 @@
/**
* sys_getpid - return the thread group id of the current process
-@@ -1320,7 +1316,7 @@ asmlinkage unsigned long sys_alarm(unsig
+@@ -1320,7 +1316,7 @@ SYSCALL_DEFINE1(alarm, unsigned int, sec
*/
- asmlinkage long sys_getpid(void)
+ SYSCALL_DEFINE0(getpid)
{
- return current->tgid;
+ return vx_map_tgid(current->tgid);
}
/*
-@@ -1336,10 +1332,23 @@ asmlinkage long sys_getppid(void)
+@@ -1336,10 +1332,23 @@ SYSCALL_DEFINE0(getppid)
rcu_read_lock();
pid = rcu_dereference(current->real_parent)->tgid;
rcu_read_unlock();
+ return vx_map_pid(pid);
+}
++
++#ifdef __alpha__
- return pid;
-+#ifdef __alpha__
-+
+/*
+ * The Alpha uses getxpid, getxuid, and getxgid instead.
+ */
@@ -13871,7 +13871,7 @@
+#else /* _alpha_ */
+
- asmlinkage long sys_getuid(void)
+ SYSCALL_DEFINE0(getuid)
{
/* Only we change this so SMP safe */
@@ -1500,6 +1509,8 @@ asmlinkage long sys_sysinfo(struct sysin
@@ -20347,7 +20347,7 @@
ret = -EAGAIN;
@@ -123,7 +124,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: dists/etch-security/linux-2.6/debian/patches/series/23etch2
==============================================================================
--- dists/etch-security/linux-2.6/debian/patches/series/23etch2 (original)
+++ dists/etch-security/linux-2.6/debian/patches/series/23etch2 Mon Feb 9 15:47:53 2009
@@ -1,3 +1,55 @@
+ bugfix/all/watchdog-ib700wdt-buffer_underflow.patch
+ bugfix/all/nfs-remove-buggy-lock-if-signalled-case.patch
+ bugfix/all/sctp-avoid-memory-overflow.patch
++ bugfix/all/CVE-2009-0029/0001-Move-compat-system-call-declarations.patch
++ bugfix/all/CVE-2009-0029/0002-Convert-all-system-calls-to-return-a.patch
++ bugfix/all/CVE-2009-0029/0003-Rename-old_readdir-to-sys_old_readdi.patch
++ bugfix/all/CVE-2009-0029/0004pre1-ia64-kill-sys32_pipe.patch
++ bugfix/all/CVE-2009-0029/0004pre2-unify-sys_pipe.patch
++ bugfix/all/CVE-2009-0029/0004-Remove-__attribute__-weak-from-sy.patch
++ bugfix/all/CVE-2009-0029/0005-Make-sys_pselect7-static.patch
++ bugfix/all/CVE-2009-0029/0006-Make-sys_syslog-a-conditional-system.patch
++ bugfix/all/CVE-2009-0029/0007-System-call-wrapper-infrastructure.patch
++ bugfix/all/CVE-2009-0029/0008-powerpc-Enable-syscall-wrappers-for.patch
++ bugfix/all/CVE-2009-0029/0009-s390-enable-system-call-wrappers.patch
++ bugfix/all/CVE-2009-0029/0010-System-call-wrapper-special-cases.patch
++ bugfix/all/CVE-2009-0029/0011-System-call-wrappers-part-01.patch
++ bugfix/all/CVE-2009-0029/0012-System-call-wrappers-part-02.patch
++ bugfix/all/CVE-2009-0029/0013-System-call-wrappers-part-03.patch
++ bugfix/all/CVE-2009-0029/0014-System-call-wrappers-part-04.patch
++ bugfix/all/CVE-2009-0029/0015-System-call-wrappers-part-05.patch
++ bugfix/all/CVE-2009-0029/0016-System-call-wrappers-part-06.patch
++ bugfix/all/CVE-2009-0029/0017-System-call-wrappers-part-07.patch
++ bugfix/all/CVE-2009-0029/0018-System-call-wrappers-part-08.patch
++ bugfix/all/CVE-2009-0029/0019-System-call-wrappers-part-09.patch
++ bugfix/all/CVE-2009-0029/0020-System-call-wrappers-part-10.patch
++ bugfix/all/CVE-2009-0029/0021-System-call-wrappers-part-11.patch
++ bugfix/all/CVE-2009-0029/0022-System-call-wrappers-part-12.patch
++ bugfix/all/CVE-2009-0029/0023-System-call-wrappers-part-13.patch
++ bugfix/all/CVE-2009-0029/0024-System-call-wrappers-part-14.patch
++ bugfix/all/CVE-2009-0029/0025-System-call-wrappers-part-15.patch
++ bugfix/all/CVE-2009-0029/0026-System-call-wrappers-part-16.patch
++ bugfix/all/CVE-2009-0029/0027-System-call-wrappers-part-17.patch
++ bugfix/all/CVE-2009-0029/0028-System-call-wrappers-part-18.patch
++ bugfix/all/CVE-2009-0029/0029-System-call-wrappers-part-19.patch
++ bugfix/all/CVE-2009-0029/0030-System-call-wrappers-part-20.patch
++ bugfix/all/CVE-2009-0029/0031-System-call-wrappers-part-21.patch
++ bugfix/all/CVE-2009-0029/0032-System-call-wrappers-part-22.patch
++ bugfix/all/CVE-2009-0029/0033-System-call-wrappers-part-23.patch
++ bugfix/all/CVE-2009-0029/0034-System-call-wrappers-part-24.patch
++ bugfix/all/CVE-2009-0029/0035-System-call-wrappers-part-25.patch
++ bugfix/all/CVE-2009-0029/0036-System-call-wrappers-part-26.patch
++ bugfix/all/CVE-2009-0029/0037pre1-missing-include.patch
++ bugfix/all/CVE-2009-0029/0037-System-call-wrappers-part-27.patch
++ bugfix/all/CVE-2009-0029/0038pre1-missing-include.patch
++ bugfix/all/CVE-2009-0029/0038pre2-missing-include.patch
++ bugfix/all/CVE-2009-0029/0038-System-call-wrappers-part-28.patch
++ bugfix/all/CVE-2009-0029/0039-System-call-wrappers-part-29.patch
++ bugfix/all/CVE-2009-0029/0040-System-call-wrappers-part-30.patch
++ bugfix/all/CVE-2009-0029/0041-System-call-wrappers-part-31.patch
++ bugfix/all/CVE-2009-0029/0042-System-call-wrappers-part-32.patch
++ bugfix/all/CVE-2009-0029/0043pre1-missing-include.patch
++ bugfix/all/CVE-2009-0029/0043-System-call-wrappers-part-33.patch
++ bugfix/all/CVE-2009-0029/0044-s390-specific-system-call-wrappers.patch
++ bugfix/all/CVE-2009-0029/0090-i386-remove-sys_pipe-proto.patch
++ bugfix/all/CVE-2009-0029/0091-avoid-abi-change.patch
More information about the Kernel-svn-changes
mailing list