[kernel] r13338 - in dists/etch-security/linux-2.6.24/debian/patches: bugfix/all/CVE-2009-0029 series
Dann Frazier
dannf at alioth.debian.org
Mon Apr 6 02:53:17 UTC 2009
Author: dannf
Date: Mon Apr 6 02:53:15 2009
New Revision: 13338
Log:
additional CVE-2009-0029 fixes
Added:
dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/compat-zero-upper-32bits-of-offset_high-and-offset_low.patch
- copied, changed from r13320, dists/sid/linux-2.6/debian/patches/bugfix/mips/compat-zero-upper-32bits-of-offset_high-and-offset_low.patch
dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/fix-uml-compile.patch
- copied unchanged from r13322, dists/lenny-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/fix-uml-compile.patch
dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/mips-enable-syscall-wrappers-no-abi-change.patch
- copied unchanged from r13322, dists/lenny-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/mips-enable-syscall-wrappers-no-abi-change.patch
dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/mips-enable-syscall-wrappers.patch
- copied, changed from r13322, dists/lenny-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/mips-enable-syscall-wrappers.patch
dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/sparc64-wrap-arch-specific-syscalls.patch
- copied, changed from r13322, dists/lenny-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/sparc64-wrap-arch-specific-syscalls.patch
Deleted:
dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/mips-finish-fixing-CVE-2009-0029.patch
dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/mips-wire-up-o32-syscall-to-the-right-function.patch
Modified:
dists/etch-security/linux-2.6.24/debian/patches/series/6~etchnhalf.8etch1
Copied and modified: dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/compat-zero-upper-32bits-of-offset_high-and-offset_low.patch (from r13320, dists/sid/linux-2.6/debian/patches/bugfix/mips/compat-zero-upper-32bits-of-offset_high-and-offset_low.patch)
==============================================================================
--- dists/sid/linux-2.6/debian/patches/bugfix/mips/compat-zero-upper-32bits-of-offset_high-and-offset_low.patch Sat Apr 4 00:29:16 2009 (r13320, copy source)
+++ dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/compat-zero-upper-32bits-of-offset_high-and-offset_low.patch Mon Apr 6 02:53:15 2009 (r13338)
@@ -11,12 +11,13 @@
Signed-off-by: Ralf Baechle <ralf at linux-mips.org>
-diff --git a/arch/mips/kernel/linux32.c b/arch/mips/kernel/linux32.c
-index 2a47271..6242bc6 100644
---- a/arch/mips/kernel/linux32.c
-+++ b/arch/mips/kernel/linux32.c
-@@ -133,9 +133,9 @@ SYSCALL_DEFINE4(32_ftruncate64, unsigned long, fd, unsigned long, __dummy,
- return sys_ftruncate(fd, merge_64(a2, a3));
+Adjusted to apply to Debian's 2.6.24 by dann frazier <dannf at debian.org>
+
+diff -urpN a/arch/mips/kernel/linux32.c b/arch/mips/kernel/linux32.c
+--- a/arch/mips/kernel/linux32.c 2009-04-05 20:01:58.000000000 -0600
++++ b/arch/mips/kernel/linux32.c 2009-04-05 20:46:41.000000000 -0600
+@@ -273,9 +273,9 @@ sys32_settimeofday(struct compat_timeval
+ return do_sys_settimeofday(tv ? &kts : NULL, tz ? &ktz : NULL);
}
-SYSCALL_DEFINE5(32_llseek, unsigned long, fd, unsigned long, offset_high,
Copied: dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/fix-uml-compile.patch (from r13322, dists/lenny-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/fix-uml-compile.patch)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/fix-uml-compile.patch Mon Apr 6 02:53:15 2009 (r13338, copy of r13322, dists/lenny-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/fix-uml-compile.patch)
@@ -0,0 +1,83 @@
+commit 6c5979631b4b03c9288776562c18036765e398c1
+Author: Heiko Carstens <heiko.carstens at de.ibm.com>
+Date: Wed Feb 11 13:04:38 2009 -0800
+
+ syscall define: fix uml compile bug
+
+ With the new system call defines we get this on uml:
+
+ arch/um/sys-i386/built-in.o: In function `sys_call_table':
+ (.rodata+0x308): undefined reference to `sys_sigprocmask'
+
+ Reason for this is that uml passes the preprocessor option
+ -Dsigprocmask=kernel_sigprocmask to gcc when compiling the kernel.
+ This causes SYSCALL_DEFINE3(sigprocmask, ...) to be expanded to
+ SYSCALL_DEFINEx(3, kernel_sigprocmask, ...) and finally to a system
+ call named sys_kernel_sigprocmask. However sys_sigprocmask is missing
+ because of this.
+
+ To avoid macro expansion for the system call name just concatenate the
+ name at first define instead of carrying it through severel levels.
+ This was pointed out by Al Viro.
+
+ Signed-off-by: Heiko Carstens <heiko.carstens at de.ibm.com>
+ Cc: Geert Uytterhoeven <geert at linux-m68k.org>
+ Cc: Al Viro <viro at zeniv.linux.org.uk>
+ Reviewed-by: WANG Cong <wangcong at zeuux.org>
+ Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
+ Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
+
+diff --git a/include/linux/syscalls.h b/include/linux/syscalls.h
+index 0eda02f..f9f900c 100644
+--- a/include/linux/syscalls.h
++++ b/include/linux/syscalls.h
+@@ -95,13 +95,13 @@ struct old_linux_dirent;
+ #define __SC_TEST5(t5, a5, ...) __SC_TEST(t5); __SC_TEST4(__VA_ARGS__)
+ #define __SC_TEST6(t6, a6, ...) __SC_TEST(t6); __SC_TEST5(__VA_ARGS__)
+
+-#define SYSCALL_DEFINE0(name) asmlinkage long sys_##name(void)
+-#define SYSCALL_DEFINE1(...) SYSCALL_DEFINEx(1, __VA_ARGS__)
+-#define SYSCALL_DEFINE2(...) SYSCALL_DEFINEx(2, __VA_ARGS__)
+-#define SYSCALL_DEFINE3(...) SYSCALL_DEFINEx(3, __VA_ARGS__)
+-#define SYSCALL_DEFINE4(...) SYSCALL_DEFINEx(4, __VA_ARGS__)
+-#define SYSCALL_DEFINE5(...) SYSCALL_DEFINEx(5, __VA_ARGS__)
+-#define SYSCALL_DEFINE6(...) SYSCALL_DEFINEx(6, __VA_ARGS__)
++#define SYSCALL_DEFINE0(name) asmlinkage long sys_##name(void)
++#define SYSCALL_DEFINE1(name, ...) SYSCALL_DEFINEx(1, _##name, __VA_ARGS__)
++#define SYSCALL_DEFINE2(name, ...) SYSCALL_DEFINEx(2, _##name, __VA_ARGS__)
++#define SYSCALL_DEFINE3(name, ...) SYSCALL_DEFINEx(3, _##name, __VA_ARGS__)
++#define SYSCALL_DEFINE4(name, ...) SYSCALL_DEFINEx(4, _##name, __VA_ARGS__)
++#define SYSCALL_DEFINE5(name, ...) SYSCALL_DEFINEx(5, _##name, __VA_ARGS__)
++#define SYSCALL_DEFINE6(name, ...) SYSCALL_DEFINEx(6, _##name, __VA_ARGS__)
+
+ #ifdef CONFIG_PPC64
+ #define SYSCALL_ALIAS(alias, name) \
+@@ -121,21 +121,21 @@ struct old_linux_dirent;
+
+ #define SYSCALL_DEFINE(name) static inline long SYSC_##name
+ #define SYSCALL_DEFINEx(x, name, ...) \
+- asmlinkage long sys_##name(__SC_DECL##x(__VA_ARGS__)); \
+- static inline long SYSC_##name(__SC_DECL##x(__VA_ARGS__)); \
+- asmlinkage long SyS_##name(__SC_LONG##x(__VA_ARGS__)) \
++ asmlinkage long sys##name(__SC_DECL##x(__VA_ARGS__)); \
++ static inline long SYSC##name(__SC_DECL##x(__VA_ARGS__)); \
++ asmlinkage long SyS##name(__SC_LONG##x(__VA_ARGS__)) \
+ { \
+ __SC_TEST##x(__VA_ARGS__); \
+- return (long) SYSC_##name(__SC_CAST##x(__VA_ARGS__)); \
++ return (long) SYSC##name(__SC_CAST##x(__VA_ARGS__)); \
+ } \
+- SYSCALL_ALIAS(sys_##name, SyS_##name); \
+- static inline long SYSC_##name(__SC_DECL##x(__VA_ARGS__))
++ SYSCALL_ALIAS(sys##name, SyS##name); \
++ static inline long SYSC##name(__SC_DECL##x(__VA_ARGS__))
+
+ #else /* CONFIG_HAVE_SYSCALL_WRAPPERS */
+
+ #define SYSCALL_DEFINE(name) asmlinkage long sys_##name
+ #define SYSCALL_DEFINEx(x, name, ...) \
+- asmlinkage long sys_##name(__SC_DECL##x(__VA_ARGS__))
++ asmlinkage long sys##name(__SC_DECL##x(__VA_ARGS__))
+
+ #endif /* CONFIG_HAVE_SYSCALL_WRAPPERS */
+
Copied: dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/mips-enable-syscall-wrappers-no-abi-change.patch (from r13322, dists/lenny-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/mips-enable-syscall-wrappers-no-abi-change.patch)
==============================================================================
--- /dev/null 00:00:00 1970 (empty, because file is newly added)
+++ dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/mips-enable-syscall-wrappers-no-abi-change.patch Mon Apr 6 02:53:15 2009 (r13338, copy of r13322, dists/lenny-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/mips-enable-syscall-wrappers-no-abi-change.patch)
@@ -0,0 +1,13 @@
+diff -urpN a/arch/mips/mm/cache.c b/arch/mips/mm/cache.c
+--- a/arch/mips/mm/cache.c 2009-03-09 10:37:50.000000000 -0600
++++ b/arch/mips/mm/cache.c 2009-03-09 10:43:31.000000000 -0600
+@@ -13,7 +13,9 @@
+ #include <linux/linkage.h>
+ #include <linux/module.h>
+ #include <linux/sched.h>
++#ifndef __GENKSYMS__
+ #include <linux/syscalls.h>
++#endif
+ #include <linux/mm.h>
+
+ #include <asm/cacheflush.h>
Copied and modified: dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/mips-enable-syscall-wrappers.patch (from r13322, dists/lenny-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/mips-enable-syscall-wrappers.patch)
==============================================================================
--- dists/lenny-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/mips-enable-syscall-wrappers.patch Sat Apr 4 00:49:23 2009 (r13322, copy source)
+++ dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/mips-enable-syscall-wrappers.patch Mon Apr 6 02:53:15 2009 (r13338)
@@ -9,12 +9,12 @@
Signed-off-by: Ralf Baechle <ralf at linux-mips.org>
Signed-off-by: David Daney <ddaney at caviumnetworks.com>
-Backported to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+Backported to Debian's 2.6.24 by dann frazier <dannf at debian.org>
diff -urpN a/arch/mips/Kconfig b/arch/mips/Kconfig
---- a/arch/mips/Kconfig 2008-07-13 15:51:29.000000000 -0600
-+++ b/arch/mips/Kconfig 2009-03-08 13:16:31.000000000 -0600
-@@ -1385,6 +1385,7 @@ config 32BIT
+--- a/arch/mips/Kconfig 2008-01-24 15:58:37.000000000 -0700
++++ b/arch/mips/Kconfig 2009-04-05 19:55:04.000000000 -0600
+@@ -1344,6 +1344,7 @@ config 32BIT
config 64BIT
bool "64-bit kernel"
depends on CPU_SUPPORTS_64BIT_KERNEL && SYS_SUPPORTS_64BIT_KERNEL
@@ -23,8 +23,8 @@
Select this option if you want to build a 64-bit kernel.
diff -urpN a/arch/mips/kernel/linux32.c b/arch/mips/kernel/linux32.c
---- a/arch/mips/kernel/linux32.c 2008-07-13 15:51:29.000000000 -0600
-+++ b/arch/mips/kernel/linux32.c 2009-03-08 13:18:00.000000000 -0600
+--- a/arch/mips/kernel/linux32.c 2008-01-24 15:58:37.000000000 -0700
++++ b/arch/mips/kernel/linux32.c 2009-04-05 20:01:58.000000000 -0600
@@ -33,6 +33,7 @@
#include <linux/module.h>
#include <linux/binfmts.h>
@@ -46,26 +46,41 @@
{
struct file * file = NULL;
unsigned long error;
-@@ -174,14 +175,14 @@ struct rlimit32 {
- int rlim_max;
+@@ -175,12 +176,12 @@ struct rlimit32 {
};
--asmlinkage long sys32_truncate64(const char __user * path,
-- unsigned long __dummy, int a2, int a3)
+ #ifdef __MIPSEB__
+-asmlinkage long sys32_truncate64(const char __user * path, unsigned long __dummy,
+- int length_hi, int length_lo)
+SYSCALL_DEFINE4(32_truncate64, const char __user *, path,
-+ unsigned long, __dummy, unsigned long, a2, unsigned long, a3)
++ unsigned long, __dummy, int, length_hi, int, length_lo)
+ #endif
+ #ifdef __MIPSEL__
+-asmlinkage long sys32_truncate64(const char __user * path, unsigned long __dummy,
+- int length_lo, int length_hi)
++SYSCALL_DEFINE4(32_truncate64, const char __user *, path,
++ unsigned long, __dummy, int, length_lo, int, length_hi)
+ #endif
{
- return sys_truncate(path, merge_64(a2, a3));
+ loff_t length;
+@@ -191,12 +192,12 @@ asmlinkage long sys32_truncate64(const c
}
+ #ifdef __MIPSEB__
+-asmlinkage long sys32_ftruncate64(unsigned int fd, unsigned long __dummy,
+- int length_hi, int length_lo)
++SYSCALL_DEFINE4(32_ftruncate64, unsigned long, fd, unsigned long, __dummy,
++ int, length_hi, int, length_lo)
+ #endif
+ #ifdef __MIPSEL__
-asmlinkage long sys32_ftruncate64(unsigned int fd, unsigned long __dummy,
-- int a2, int a3)
+- int length_lo, int length_hi)
+SYSCALL_DEFINE4(32_ftruncate64, unsigned long, fd, unsigned long, __dummy,
-+ unsigned long, a2, unsigned long, a3)
++ int, length_lo, int, length_hi)
+ #endif
{
- return sys_ftruncate(fd, merge_64(a2, a3));
- }
-@@ -252,9 +253,9 @@ sys32_settimeofday(struct compat_timeval
+ loff_t length;
+@@ -272,9 +273,9 @@ sys32_settimeofday(struct compat_timeval
return do_sys_settimeofday(tv ? &kts : NULL, tz ? &ktz : NULL);
}
@@ -78,7 +93,7 @@
{
return sys_llseek(fd, offset_high, offset_low, result, origin);
}
-@@ -263,20 +264,20 @@ asmlinkage int sys32_llseek(unsigned int
+@@ -283,20 +284,20 @@ asmlinkage int sys32_llseek(unsigned int
lseek back to original location. They fail just like lseek does on
non-seekable files. */
@@ -105,7 +120,7 @@
{
struct timespec t;
int ret;
-@@ -293,8 +294,8 @@ asmlinkage int sys32_sched_rr_get_interv
+@@ -313,8 +314,8 @@ asmlinkage int sys32_sched_rr_get_interv
#ifdef CONFIG_SYSVIPC
@@ -116,7 +131,7 @@
{
int version, err;
-@@ -352,8 +353,8 @@ sys32_ipc(u32 call, int first, int secon
+@@ -372,8 +373,8 @@ sys32_ipc(u32 call, int first, int secon
#else
@@ -127,7 +142,7 @@
{
return -ENOSYS;
}
-@@ -361,7 +362,7 @@ sys32_ipc(u32 call, int first, int secon
+@@ -381,7 +382,7 @@ sys32_ipc(u32 call, int first, int secon
#endif /* CONFIG_SYSVIPC */
#ifdef CONFIG_MIPS32_N32
@@ -136,7 +151,7 @@
{
/* compat_sys_semctl expects a pointer to union semun */
u32 __user *uptr = compat_alloc_user_space(sizeof(u32));
-@@ -370,13 +371,14 @@ asmlinkage long sysn32_semctl(int semid,
+@@ -390,13 +391,14 @@ asmlinkage long sysn32_semctl(int semid,
return compat_sys_semctl(semid, semnum, cmd, uptr);
}
@@ -154,7 +169,7 @@
{
return compat_sys_msgrcv(msqid, msgsz, msgtyp, msgflg, IPC_64,
compat_ptr(msgp));
-@@ -396,7 +398,7 @@ struct sysctl_args32
+@@ -416,7 +418,7 @@ struct sysctl_args32
#ifdef CONFIG_SYSCTL_SYSCALL
@@ -163,7 +178,7 @@
{
struct sysctl_args32 tmp;
int error;
-@@ -435,9 +437,16 @@ asmlinkage long sys32_sysctl(struct sysc
+@@ -455,9 +457,16 @@ asmlinkage long sys32_sysctl(struct sysc
return error;
}
@@ -181,7 +196,7 @@
{
int ret = 0;
-@@ -453,7 +462,7 @@ asmlinkage long sys32_newuname(struct ne
+@@ -473,7 +482,7 @@ asmlinkage long sys32_newuname(struct ne
return ret;
}
@@ -190,7 +205,7 @@
{
int ret;
personality &= 0xffffffff;
-@@ -476,7 +485,7 @@ struct ustat32 {
+@@ -496,7 +505,7 @@ struct ustat32 {
extern asmlinkage long sys_ustat(dev_t dev, struct ustat __user * ubuf);
@@ -199,7 +214,7 @@
{
int err;
struct ustat tmp;
-@@ -500,8 +509,8 @@ out:
+@@ -520,8 +529,8 @@ out:
return err;
}
@@ -211,8 +226,8 @@
mm_segment_t old_fs = get_fs();
int ret;
diff -urpN a/arch/mips/kernel/scall32-o32.S b/arch/mips/kernel/scall32-o32.S
---- a/arch/mips/kernel/scall32-o32.S 2009-03-03 22:15:28.000000000 -0700
-+++ b/arch/mips/kernel/scall32-o32.S 2009-03-08 13:16:31.000000000 -0600
+--- a/arch/mips/kernel/scall32-o32.S 2009-04-05 19:32:24.000000000 -0600
++++ b/arch/mips/kernel/scall32-o32.S 2009-04-05 19:55:04.000000000 -0600
@@ -414,7 +414,7 @@ einval: li v0, -EINVAL
sys sys_swapon 2
sys sys_reboot 3
@@ -232,8 +247,8 @@
sys sys_ftruncate64 4
sys sys_stat64 2
diff -urpN a/arch/mips/kernel/scall64-64.S b/arch/mips/kernel/scall64-64.S
---- a/arch/mips/kernel/scall64-64.S 2008-07-13 15:51:29.000000000 -0600
-+++ b/arch/mips/kernel/scall64-64.S 2009-03-08 13:16:31.000000000 -0600
+--- a/arch/mips/kernel/scall64-64.S 2009-04-05 19:32:24.000000000 -0600
++++ b/arch/mips/kernel/scall64-64.S 2009-04-05 19:55:04.000000000 -0600
@@ -207,7 +207,7 @@ sys_call_table:
PTR sys_newlstat
PTR sys_poll
@@ -244,8 +259,8 @@
PTR sys_munmap
PTR sys_brk
diff -urpN a/arch/mips/kernel/scall64-n32.S b/arch/mips/kernel/scall64-n32.S
---- a/arch/mips/kernel/scall64-n32.S 2009-03-08 13:13:09.000000000 -0600
-+++ b/arch/mips/kernel/scall64-n32.S 2009-03-08 13:16:31.000000000 -0600
+--- a/arch/mips/kernel/scall64-n32.S 2009-04-05 19:52:55.000000000 -0600
++++ b/arch/mips/kernel/scall64-n32.S 2009-04-05 19:55:04.000000000 -0600
@@ -129,12 +129,12 @@ EXPORT(sysn32_call_table)
PTR sys_newlstat
PTR sys_poll
@@ -328,8 +343,8 @@
PTR compat_sys_adjtimex
PTR compat_sys_setrlimit /* 6155 */
diff -urpN a/arch/mips/kernel/scall64-o32.S b/arch/mips/kernel/scall64-o32.S
---- a/arch/mips/kernel/scall64-o32.S 2009-03-08 13:15:39.000000000 -0600
-+++ b/arch/mips/kernel/scall64-o32.S 2009-03-08 13:16:31.000000000 -0600
+--- a/arch/mips/kernel/scall64-o32.S 2009-04-05 19:52:55.000000000 -0600
++++ b/arch/mips/kernel/scall64-o32.S 2009-04-05 19:55:04.000000000 -0600
@@ -265,12 +265,12 @@ sys_call_table:
PTR sys_olduname
PTR sys_umask /* 4060 */
@@ -447,8 +462,8 @@
PTR sys_add_key /* 4280 */
PTR sys_request_key
diff -urpN a/arch/mips/kernel/signal32.c b/arch/mips/kernel/signal32.c
---- a/arch/mips/kernel/signal32.c 2008-07-13 15:51:29.000000000 -0600
-+++ b/arch/mips/kernel/signal32.c 2009-03-08 13:16:31.000000000 -0600
+--- a/arch/mips/kernel/signal32.c 2008-01-24 15:58:37.000000000 -0700
++++ b/arch/mips/kernel/signal32.c 2009-04-05 19:55:04.000000000 -0600
@@ -349,8 +349,8 @@ asmlinkage int sys32_rt_sigsuspend(nabi_
return -ERESTARTNOHAND;
}
@@ -520,8 +535,8 @@
siginfo_t info;
struct rusage ru;
diff -urpN a/arch/mips/kernel/signal.c b/arch/mips/kernel/signal.c
---- a/arch/mips/kernel/signal.c 2008-07-13 15:51:29.000000000 -0600
-+++ b/arch/mips/kernel/signal.c 2009-03-08 13:16:31.000000000 -0600
+--- a/arch/mips/kernel/signal.c 2008-01-24 15:58:37.000000000 -0700
++++ b/arch/mips/kernel/signal.c 2009-04-05 19:55:04.000000000 -0600
@@ -19,6 +19,7 @@
#include <linux/ptrace.h>
#include <linux/unistd.h>
@@ -542,9 +557,9 @@
struct k_sigaction new_ka, old_ka;
int ret;
diff -urpN a/arch/mips/kernel/syscall.c b/arch/mips/kernel/syscall.c
---- a/arch/mips/kernel/syscall.c 2008-07-13 15:51:29.000000000 -0600
-+++ b/arch/mips/kernel/syscall.c 2009-03-08 13:16:31.000000000 -0600
-@@ -146,9 +146,9 @@ out:
+--- a/arch/mips/kernel/syscall.c 2009-04-05 19:32:24.000000000 -0600
++++ b/arch/mips/kernel/syscall.c 2009-04-05 19:55:04.000000000 -0600
+@@ -153,9 +153,9 @@ out:
return error;
}
@@ -557,7 +572,7 @@
{
unsigned long result;
-@@ -162,9 +162,9 @@ out:
+@@ -169,9 +169,9 @@ out:
return result;
}
@@ -570,7 +585,7 @@
{
if (pgoff & (~PAGE_MASK >> 12))
return -EINVAL;
-@@ -234,7 +234,7 @@ out:
+@@ -241,7 +241,7 @@ out:
/*
* Compacrapability ...
*/
@@ -579,7 +594,7 @@
{
if (name && !copy_to_user(name, utsname(), sizeof (*name)))
return 0;
-@@ -244,7 +244,7 @@ asmlinkage int sys_uname(struct old_utsn
+@@ -251,7 +251,7 @@ asmlinkage int sys_uname(struct old_utsn
/*
* Compacrapability ...
*/
@@ -588,7 +603,7 @@
{
int error;
-@@ -273,7 +273,7 @@ asmlinkage int sys_olduname(struct oldol
+@@ -280,7 +280,7 @@ asmlinkage int sys_olduname(struct oldol
return error;
}
@@ -597,7 +612,7 @@
{
struct thread_info *ti = task_thread_info(current);
-@@ -284,7 +284,7 @@ asmlinkage int sys_set_thread_area(unsig
+@@ -291,7 +291,7 @@ asmlinkage int sys_set_thread_area(unsig
return 0;
}
@@ -606,7 +621,7 @@
{
switch (cmd) {
case MIPS_ATOMIC_SET:
-@@ -319,8 +319,8 @@ asmlinkage int _sys_sysmips(int cmd, lon
+@@ -326,8 +326,8 @@ asmlinkage int _sys_sysmips(int cmd, lon
*
* This is really horribly ugly.
*/
@@ -617,7 +632,7 @@
{
int version, ret;
-@@ -405,7 +405,7 @@ asmlinkage int sys_ipc(unsigned int call
+@@ -412,7 +412,7 @@ asmlinkage int sys_ipc(unsigned int call
/*
* No implemented yet ...
*/
@@ -627,8 +642,8 @@
return -ENOSYS;
}
diff -urpN a/arch/mips/mm/cache.c b/arch/mips/mm/cache.c
---- a/arch/mips/mm/cache.c 2008-07-13 15:51:29.000000000 -0600
-+++ b/arch/mips/mm/cache.c 2009-03-08 13:16:31.000000000 -0600
+--- a/arch/mips/mm/cache.c 2008-01-24 15:58:37.000000000 -0700
++++ b/arch/mips/mm/cache.c 2009-04-05 19:55:04.000000000 -0600
@@ -13,6 +13,7 @@
#include <linux/linkage.h>
#include <linux/module.h>
@@ -637,7 +652,7 @@
#include <linux/mm.h>
#include <asm/cacheflush.h>
-@@ -57,8 +58,8 @@ EXPORT_SYMBOL(_dma_cache_wback_inv);
+@@ -54,8 +55,8 @@ EXPORT_SYMBOL(_dma_cache_wback_inv);
* We could optimize the case where the cache argument is not BCACHE but
* that seems very atypical use ...
*/
Copied and modified: dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/sparc64-wrap-arch-specific-syscalls.patch (from r13322, dists/lenny-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/sparc64-wrap-arch-specific-syscalls.patch)
==============================================================================
--- dists/lenny-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/sparc64-wrap-arch-specific-syscalls.patch Sat Apr 4 00:49:23 2009 (r13322, copy source)
+++ dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/sparc64-wrap-arch-specific-syscalls.patch Mon Apr 6 02:53:15 2009 (r13338)
@@ -6,24 +6,30 @@
Signed-off-by: David S. Miller <davem at davemloft.net>
-Backported to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+Backported to Debian's 2.6.24 by dann frazier <dannf at debian.org>
-diff -urpN a/arch/sparc64/kernel/syscalls.S b/arch/sparc64/kernel/syscalls.S
---- a/arch/sparc64/kernel/syscalls.S 2009-03-08 16:12:32.000000000 -0600
-+++ b/arch/sparc64/kernel/syscalls.S 2009-03-08 16:27:44.000000000 -0600
-@@ -21,7 +21,7 @@ execve_merge:
-
+diff -urpN a/arch/sparc64/kernel/entry.S b/arch/sparc64/kernel/entry.S
+--- a/arch/sparc64/kernel/entry.S 2008-01-24 15:58:37.000000000 -0700
++++ b/arch/sparc64/kernel/entry.S 2009-04-05 20:38:10.000000000 -0600
+@@ -1432,12 +1432,12 @@ execve_merge:
+ jmpl %g1, %g0
+ add %sp, PTREGS_OFF, %o0
+
+- .globl sys_pipe, sys_sigpause, sys_nis_syscall
++ .globl sys_sparc_pipe, sys_sigpause, sys_nis_syscall
+ .globl sys_rt_sigreturn
+ .globl sys_ptrace
+ .globl sys_sigaltstack
.align 32
- sys_sparc_pipe:
-- ba,pt %xcc, sparc_pipe
-+ ba,pt %xcc, sys_sparc_pipe_real
- add %sp, PTREGS_OFF, %o0
- sys_nis_syscall:
- ba,pt %xcc, c_sys_nis_syscall
+-sys_pipe: ba,pt %xcc, sparc_pipe
++sys_sparc_pipe: ba,pt %xcc, sys_sparc_pipe_real
+ add %sp, PTREGS_OFF, %o0
+ sys_nis_syscall:ba,pt %xcc, c_sys_nis_syscall
+ add %sp, PTREGS_OFF, %o0
diff -urpN a/arch/sparc64/kernel/sys_sparc.c b/arch/sparc64/kernel/sys_sparc.c
---- a/arch/sparc64/kernel/sys_sparc.c 2008-07-13 15:51:29.000000000 -0600
-+++ b/arch/sparc64/kernel/sys_sparc.c 2009-03-08 16:27:01.000000000 -0600
-@@ -397,7 +397,7 @@ void arch_pick_mmap_layout(struct mm_str
+--- a/arch/sparc64/kernel/sys_sparc.c 2009-04-05 19:32:22.000000000 -0600
++++ b/arch/sparc64/kernel/sys_sparc.c 2009-04-05 20:13:32.000000000 -0600
+@@ -396,7 +396,7 @@ void arch_pick_mmap_layout(struct mm_str
}
}
@@ -32,7 +38,7 @@
{
/* People could try to be nasty and use ta 0x6d in 32bit programs */
if (test_thread_flag(TIF_32BIT) && brk >= STACK_TOP32)
-@@ -413,7 +413,7 @@ asmlinkage unsigned long sparc_brk(unsig
+@@ -412,7 +412,7 @@ asmlinkage unsigned long sparc_brk(unsig
* sys_pipe() is the normal C calling standard for creating
* a pipe. It's not the way unix traditionally does this, though.
*/
@@ -41,7 +47,7 @@
{
int fd[2];
int error;
-@@ -433,8 +433,8 @@ out:
+@@ -432,8 +432,8 @@ out:
* This is really horribly ugly.
*/
@@ -52,7 +58,7 @@
{
long err;
-@@ -517,7 +517,7 @@ out:
+@@ -515,7 +515,7 @@ out:
return err;
}
@@ -61,7 +67,7 @@
{
int ret = sys_newuname(name);
-@@ -528,7 +528,7 @@ asmlinkage long sparc64_newuname(struct
+@@ -526,7 +526,7 @@ asmlinkage long sparc64_newuname(struct
return ret;
}
@@ -70,7 +76,7 @@
{
int ret;
-@@ -562,9 +562,9 @@ int sparc64_mmap_check(unsigned long add
+@@ -560,9 +560,9 @@ int sparc64_mmap_check(unsigned long add
}
/* Linux version of mmap */
@@ -83,7 +89,7 @@
{
struct file * file = NULL;
unsigned long retval = -EBADF;
-@@ -587,7 +587,7 @@ out:
+@@ -585,7 +585,7 @@ out:
return retval;
}
@@ -92,7 +98,7 @@
{
long ret;
-@@ -604,9 +604,9 @@ extern unsigned long do_mremap(unsigned
+@@ -602,9 +602,9 @@ extern unsigned long do_mremap(unsigned
unsigned long old_len, unsigned long new_len,
unsigned long flags, unsigned long new_addr);
@@ -105,7 +111,7 @@
{
unsigned long ret = -EINVAL;
-@@ -669,7 +669,7 @@ asmlinkage void sparc_breakpoint(struct
+@@ -667,7 +667,7 @@ asmlinkage void sparc_breakpoint(struct
extern void check_pending(int signum);
@@ -114,9 +120,9 @@
{
int nlen, err;
-@@ -692,11 +692,10 @@ out:
- return err;
+@@ -728,11 +728,10 @@ asmlinkage long sunos_syscall(struct pt_
}
+ #endif
-asmlinkage long sys_utrap_install(utrap_entry_t type,
- utrap_handler_t new_p,
@@ -130,7 +136,7 @@
{
if (type < UT_INSTRUCTION_EXCEPTION || type > UT_TRAP_INSTRUCTION_31)
return -EINVAL;
-@@ -762,11 +761,9 @@ asmlinkage long sparc_memory_ordering(un
+@@ -797,11 +796,9 @@ long sparc_memory_ordering(unsigned long
return 0;
}
@@ -145,7 +151,7 @@
{
struct k_sigaction new_ka, old_ka;
int ret;
-@@ -806,7 +803,8 @@ asmlinkage void update_perfctrs(void)
+@@ -841,7 +838,8 @@ asmlinkage void update_perfctrs(void)
reset_pic();
}
@@ -155,22 +161,9 @@
{
int err = 0;
-diff -urpN a/arch/sparc64/kernel/systbls.h b/arch/sparc64/kernel/systbls.h
---- a/arch/sparc64/kernel/systbls.h 2008-07-13 15:51:29.000000000 -0600
-+++ b/arch/sparc64/kernel/systbls.h 2009-03-08 16:33:16.000000000 -0600
-@@ -16,9 +16,6 @@ extern asmlinkage long sys_ipc(unsigned
- void __user *ptr, long fifth);
- extern asmlinkage long sparc64_newuname(struct new_utsname __user *name);
- extern asmlinkage long sparc64_personality(unsigned long personality);
--extern asmlinkage unsigned long sys_mmap(unsigned long addr, unsigned long len,
-- unsigned long prot, unsigned long flags,
-- unsigned long fd, unsigned long off);
- extern asmlinkage long sys64_munmap(unsigned long addr, size_t len);
- extern asmlinkage unsigned long sys64_mremap(unsigned long addr,
- unsigned long old_len,
diff -urpN a/arch/sparc64/kernel/systbls.S b/arch/sparc64/kernel/systbls.S
---- a/arch/sparc64/kernel/systbls.S 2009-03-08 16:12:32.000000000 -0600
-+++ b/arch/sparc64/kernel/systbls.S 2009-03-08 16:33:04.000000000 -0600
+--- a/arch/sparc64/kernel/systbls.S 2009-04-05 19:32:23.000000000 -0600
++++ b/arch/sparc64/kernel/systbls.S 2009-04-05 20:14:09.000000000 -0600
@@ -21,7 +21,7 @@ sys_call_table32:
/*0*/ .word sys_restart_syscall, sys32_exit, sys_fork, sys_read, sys_write
/*5*/ .word sys32_open, sys_close, sys32_wait4, sys32_creat, sys_link
@@ -178,7 +171,7 @@
-/*15*/ .word sys_chmod, sys32_lchown16, sparc_brk, sys32_perfctr, sys32_lseek
+/*15*/ .word sys_chmod, sys32_lchown16, sys_sparc_brk, sys32_perfctr, sys32_lseek
/*20*/ .word sys_getpid, sys_capget, sys_capset, sys32_setuid16, sys32_getuid16
- /*25*/ .word sys32_vmsplice, compat_sys_ptrace, sys_alarm, sys32_sigaltstack, sys32_pause
+ /*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
@@ -55,8 +55,8 @@ sys_call_table32:
/*170*/ .word sys32_lsetxattr, sys32_fsetxattr, sys_getxattr, sys_lgetxattr, compat_sys_getdents
@@ -191,7 +184,7 @@
.word sys32_epoll_wait, sys32_ioprio_set, sys_getppid, sys32_sigaction, sys_sgetmask
/*200*/ .word sys32_ssetmask, sys_sigsuspend, compat_sys_newlstat, sys_uselib, compat_sys_old_readdir
.word sys32_readahead, sys32_socketcall, sys32_syslog, sys32_lookup_dcookie, sys32_fadvise64
-@@ -94,7 +94,7 @@ sys_call_table:
+@@ -93,7 +93,7 @@ sys_call_table:
/*0*/ .word sys_restart_syscall, sparc_exit, sys_fork, sys_read, sys_write
/*5*/ .word sys_open, sys_close, sys_wait4, sys_creat, sys_link
/*10*/ .word sys_unlink, sys_nis_syscall, sys_chdir, sys_chown, sys_mknod
@@ -200,7 +193,7 @@
/*20*/ .word sys_getpid, sys_capget, sys_capset, sys_setuid, sys_getuid
/*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
-@@ -105,7 +105,7 @@ sys_call_table:
+@@ -104,7 +104,7 @@ sys_call_table:
.word sys_reboot, sys_nis_syscall, sys_symlink, sys_readlink, sys_execve
/*60*/ .word sys_umask, sys_chroot, sys_newfstat, sys_fstat64, sys_getpagesize
.word sys_msync, sys_vfork, sys_pread64, sys_pwrite64, sys_nis_syscall
@@ -209,7 +202,7 @@
.word sys_madvise, sys_vhangup, sys_nis_syscall, sys_mincore, sys_getgroups
/*80*/ .word sys_setgroups, sys_getpgrp, sys_nis_syscall, sys_setitimer, sys_nis_syscall
.word sys_swapon, sys_getitimer, sys_nis_syscall, sys_sethostname, sys_nis_syscall
-@@ -128,8 +128,8 @@ sys_call_table:
+@@ -127,8 +127,8 @@ sys_call_table:
/*170*/ .word sys_lsetxattr, sys_fsetxattr, sys_getxattr, sys_lgetxattr, sys_getdents
.word sys_setsid, sys_fchdir, sys_fgetxattr, sys_listxattr, sys_llistxattr
/*180*/ .word sys_flistxattr, sys_removexattr, sys_lremovexattr, sys_nis_syscall, sys_ni_syscall
@@ -220,7 +213,7 @@
.word sys_epoll_wait, sys_ioprio_set, sys_getppid, sys_nis_syscall, sys_sgetmask
/*200*/ .word sys_ssetmask, sys_nis_syscall, sys_newlstat, sys_uselib, sys_nis_syscall
.word sys_readahead, sys_socketcall, sys_syslog, sys_lookup_dcookie, sys_fadvise64
-@@ -141,7 +141,7 @@ sys_call_table:
+@@ -140,7 +140,7 @@ sys_call_table:
.word sys_fstatfs64, sys_llseek, sys_mlock, sys_munlock, sys_mlockall
/*240*/ .word sys_munlockall, sys_sched_setparam, sys_sched_getparam, sys_sched_setscheduler, sys_sched_getscheduler
.word sys_sched_yield, sys_sched_get_priority_max, sys_sched_get_priority_min, sys_sched_rr_get_interval, sys_nanosleep
Modified: dists/etch-security/linux-2.6.24/debian/patches/series/6~etchnhalf.8etch1
==============================================================================
--- dists/etch-security/linux-2.6.24/debian/patches/series/6~etchnhalf.8etch1 Mon Apr 6 01:50:00 2009 (r13337)
+++ dists/etch-security/linux-2.6.24/debian/patches/series/6~etchnhalf.8etch1 Mon Apr 6 02:53:15 2009 (r13338)
@@ -63,8 +63,11 @@
+ bugfix/hppa/userspace-unwind-crash.patch
+ bugfix/all/net-SO_BSDCOMPAT-leak.patch
+ bugfix/all/net-SO_BSDCOMPAT-leak-2.patch
-+ bugfix/all/CVE-2009-0029/mips-wire-up-o32-syscall-to-the-right-function.patch
-+ bugfix/all/CVE-2009-0029/mips-finish-fixing-CVE-2009-0029.patch
+ bugfix/all/CVE-2009-0029/mips-rename-sys_pipe.patch
+ bugfix/all/CVE-2009-0029/alpha-use-syscall-wrappers.patch
+ bugfix/all/CVE-2009-0029/sparc64-use-syscall-wrappers.patch
++ bugfix/all/CVE-2009-0029/mips-enable-syscall-wrappers.patch
++ bugfix/all/CVE-2009-0029/mips-enable-syscall-wrappers-no-abi-change.patch
++ bugfix/all/CVE-2009-0029/sparc64-wrap-arch-specific-syscalls.patch
++ bugfix/all/CVE-2009-0029/fix-uml-compile.patch
++ bugfix/all/CVE-2009-0029/compat-zero-upper-32bits-of-offset_high-and-offset_low.patch
More information about the Kernel-svn-changes
mailing list