[kernel] r13069 - in dists/lenny-security/linux-2.6/debian: . patches/bugfix/all/CVE-2009-0029 patches/series
Dann Frazier
dannf at alioth.debian.org
Mon Mar 9 16:45:15 UTC 2009
Author: dannf
Date: Mon Mar 9 16:45:13 2009
New Revision: 13069
Log:
use syscall wrappers on alpha
Added:
dists/lenny-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/alpha-use-syscall-wrappers.patch
Modified:
dists/lenny-security/linux-2.6/debian/changelog
dists/lenny-security/linux-2.6/debian/patches/series/13lenny2
Modified: dists/lenny-security/linux-2.6/debian/changelog
==============================================================================
--- dists/lenny-security/linux-2.6/debian/changelog (original)
+++ dists/lenny-security/linux-2.6/debian/changelog Mon Mar 9 16:45:13 2009
@@ -1,6 +1,6 @@
linux-2.6 (2.6.26-13lenny2) UNRELEASED; urgency=high
- * mips, sparc64: Additional fixes for CVE-2009-0029.
+ * alpha, mips, sparc64: Additional fixes for CVE-2009-0029.
* skfp: Fix inverted capabilities check logic (CVE-2009-0675)
* ext4: initialize the new group descriptor when resizing
(CVE-2009-0745)
@@ -9,7 +9,7 @@
* ext4: Add sanity checks for the superblock before mounting the filesystem
(CVE-2009-0748)
- -- dann frazier <dannf at debian.org> Sun, 08 Mar 2009 17:01:48 -0600
+ -- dann frazier <dannf at debian.org> Sun, 08 Mar 2009 17:45:24 -0600
linux-2.6 (2.6.26-13lenny1) stable-security; urgency=high
Added: dists/lenny-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/alpha-use-syscall-wrappers.patch
==============================================================================
--- (empty file)
+++ dists/lenny-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/alpha-use-syscall-wrappers.patch Mon Mar 9 16:45:13 2009
@@ -0,0 +1,578 @@
+commit e5d9a90c36e05dd080704ea58328c00f64facdc1
+Author: Ivan Kokshaysky <ink at jurassic.park.msu.ru>
+Date: Thu Jan 29 14:25:18 2009 -0800
+
+ alpha: use syscall wrappers
+
+ Convert OSF syscalls and add alpha specific SYSCALL_ALIAS() macro.
+
+ Signed-off-by: Ivan Kokshaysky <ink at jurassic.park.msu.ru>
+ Cc: Richard Henderson <rth at twiddle.net>
+ Cc: Heiko Carstens <heiko.carstens at de.ibm.com>
+ Signed-off-by: Andrew Morton <akpm at linux-foundation.org>
+ Signed-off-by: Linus Torvalds <torvalds at linux-foundation.org>
+
+Backported to Debian's 2.6.26 by dann frazier <dannf at debian.org>
+
+diff -urpN a/arch/alpha/Kconfig b/arch/alpha/Kconfig
+--- a/arch/alpha/Kconfig 2008-07-13 15:51:29.000000000 -0600
++++ b/arch/alpha/Kconfig 2009-03-08 17:41:19.000000000 -0600
+@@ -7,6 +7,7 @@ config ALPHA
+ default y
+ select HAVE_IDE
+ select HAVE_OPROFILE
++ select HAVE_SYSCALL_WRAPPERS
+ help
+ The Alpha is a 64-bit general-purpose processor designed and
+ marketed by the Digital Equipment Corporation of blessed memory,
+diff -urpN a/arch/alpha/kernel/entry.S b/arch/alpha/kernel/entry.S
+--- a/arch/alpha/kernel/entry.S 2009-03-08 17:24:25.000000000 -0600
++++ b/arch/alpha/kernel/entry.S 2009-03-08 17:41:19.000000000 -0600
+@@ -931,7 +931,7 @@ sys_execve:
+ osf_sigprocmask:
+ .prologue 0
+ mov $sp, $18
+- jmp $31, do_osf_sigprocmask
++ jmp $31, sys_osf_sigprocmask
+ .end osf_sigprocmask
+
+ .align 4
+diff -urpN a/arch/alpha/kernel/osf_sys.c b/arch/alpha/kernel/osf_sys.c
+--- a/arch/alpha/kernel/osf_sys.c 2008-07-13 15:51:29.000000000 -0600
++++ b/arch/alpha/kernel/osf_sys.c 2009-03-08 17:42:16.000000000 -0600
+@@ -54,8 +54,7 @@ extern int do_pipe(int *);
+ * identical to OSF as we don't return 0 on success, but doing otherwise
+ * would require changes to libc. Hopefully this is good enough.
+ */
+-asmlinkage unsigned long
+-osf_brk(unsigned long brk)
++SYSCALL_DEFINE1(osf_brk, unsigned long, brk)
+ {
+ unsigned long retval = sys_brk(brk);
+ if (brk && brk != retval)
+@@ -66,9 +65,9 @@ osf_brk(unsigned long brk)
+ /*
+ * This is pure guess-work..
+ */
+-asmlinkage int
+-osf_set_program_attributes(unsigned long text_start, unsigned long text_len,
+- unsigned long bss_start, unsigned long bss_len)
++SYSCALL_DEFINE4(osf_set_program_attributes, unsigned long, text_start,
++ unsigned long, text_len, unsigned long, bss_start,
++ unsigned long, bss_len)
+ {
+ struct mm_struct *mm;
+
+@@ -141,9 +140,9 @@ osf_filldir(void *__buf, const char *nam
+ return 0;
+ }
+
+-asmlinkage int
+-osf_getdirentries(unsigned int fd, struct osf_dirent __user *dirent,
+- unsigned int count, long __user *basep)
++SYSCALL_DEFINE4(osf_getdirentries, unsigned int, fd,
++ struct osf_dirent __user *, dirent, unsigned int, count,
++ long __user *, basep)
+ {
+ int error;
+ struct file *file;
+@@ -175,9 +174,9 @@ osf_getdirentries(unsigned int fd, struc
+
+ #undef NAME_OFFSET
+
+-asmlinkage unsigned long
+-osf_mmap(unsigned long addr, unsigned long len, unsigned long prot,
+- unsigned long flags, unsigned long fd, unsigned long off)
++SYSCALL_DEFINE6(osf_mmap, unsigned long, addr, unsigned long, len,
++ unsigned long, prot, unsigned long, flags, unsigned long, fd,
++ unsigned long, off)
+ {
+ struct file *file = NULL;
+ unsigned long ret = -EBADF;
+@@ -252,8 +251,8 @@ do_osf_statfs(struct dentry * dentry, st
+ return error;
+ }
+
+-asmlinkage int
+-osf_statfs(char __user *path, struct osf_statfs __user *buffer, unsigned long bufsiz)
++SYSCALL_DEFINE3(osf_statfs, char __user *, path,
++ struct osf_statfs __user *, buffer, unsigned long, bufsiz)
+ {
+ struct nameidata nd;
+ int retval;
+@@ -266,8 +265,8 @@ osf_statfs(char __user *path, struct osf
+ return retval;
+ }
+
+-asmlinkage int
+-osf_fstatfs(unsigned long fd, struct osf_statfs __user *buffer, unsigned long bufsiz)
++SYSCALL_DEFINE3(osf_fstatfs, unsigned long, fd,
++ struct osf_statfs __user *, buffer, unsigned long, bufsiz)
+ {
+ struct file *file;
+ int retval;
+@@ -366,8 +365,8 @@ osf_procfs_mount(char *dirname, struct p
+ return do_mount("", dirname, "proc", flags, NULL);
+ }
+
+-asmlinkage int
+-osf_mount(unsigned long typenr, char __user *path, int flag, void __user *data)
++SYSCALL_DEFINE4(osf_mount, unsigned long, typenr, char __user *, path,
++ int, flag, void __user *, data)
+ {
+ int retval = -EINVAL;
+ char *name;
+@@ -397,8 +396,7 @@ osf_mount(unsigned long typenr, char __u
+ return retval;
+ }
+
+-asmlinkage int
+-osf_utsname(char __user *name)
++SYSCALL_DEFINE1(osf_utsname, char __user *, name)
+ {
+ int error;
+
+@@ -421,14 +419,12 @@ osf_utsname(char __user *name)
+ return error;
+ }
+
+-asmlinkage unsigned long
+-sys_getpagesize(void)
++SYSCALL_DEFINE0(getpagesize)
+ {
+ return PAGE_SIZE;
+ }
+
+-asmlinkage unsigned long
+-sys_getdtablesize(void)
++SYSCALL_DEFINE0(getdtablesize)
+ {
+ return sysctl_nr_open;
+ }
+@@ -436,8 +432,7 @@ sys_getdtablesize(void)
+ /*
+ * For compatibility with OSF/1 only. Use utsname(2) instead.
+ */
+-asmlinkage int
+-osf_getdomainname(char __user *name, int namelen)
++SYSCALL_DEFINE2(osf_getdomainname, char __user *, name, int, namelen)
+ {
+ unsigned len;
+ int i;
+@@ -525,8 +520,8 @@ enum pl_code {
+ PL_DEL = 5, PL_FDEL = 6
+ };
+
+-asmlinkage long
+-osf_proplist_syscall(enum pl_code code, union pl_args __user *args)
++SYSCALL_DEFINE2(osf_proplist_syscall, enum pl_code, code,
++ union pl_args __user *, args)
+ {
+ long error;
+ int __user *min_buf_size_ptr;
+@@ -565,8 +560,8 @@ osf_proplist_syscall(enum pl_code code,
+ return error;
+ }
+
+-asmlinkage int
+-osf_sigstack(struct sigstack __user *uss, struct sigstack __user *uoss)
++SYSCALL_DEFINE2(osf_sigstack, struct sigstack __user *, uss,
++ struct sigstack __user *, uoss)
+ {
+ unsigned long usp = rdusp();
+ unsigned long oss_sp = current->sas_ss_sp + current->sas_ss_size;
+@@ -606,8 +601,7 @@ osf_sigstack(struct sigstack __user *uss
+ return error;
+ }
+
+-asmlinkage long
+-osf_sysinfo(int command, char __user *buf, long count)
++SYSCALL_DEFINE3(osf_sysinfo, int, command, char __user *, buf, long, count)
+ {
+ char *sysinfo_table[] = {
+ utsname()->sysname,
+@@ -645,9 +639,8 @@ osf_sysinfo(int command, char __user *bu
+ return err;
+ }
+
+-asmlinkage unsigned long
+-osf_getsysinfo(unsigned long op, void __user *buffer, unsigned long nbytes,
+- int __user *start, void __user *arg)
++SYSCALL_DEFINE5(osf_getsysinfo, unsigned long, op, void __user *, buffer,
++ unsigned long, nbytes, int __user *, start, void __user *, arg)
+ {
+ unsigned long w;
+ struct percpu_struct *cpu;
+@@ -703,9 +696,8 @@ osf_getsysinfo(unsigned long op, void __
+ return -EOPNOTSUPP;
+ }
+
+-asmlinkage unsigned long
+-osf_setsysinfo(unsigned long op, void __user *buffer, unsigned long nbytes,
+- int __user *start, void __user *arg)
++SYSCALL_DEFINE5(osf_setsysinfo, unsigned long, op, void __user *, buffer,
++ unsigned long, nbytes, int __user *, start, void __user *, arg)
+ {
+ switch (op) {
+ case SSI_IEEE_FP_CONTROL: {
+@@ -878,8 +870,8 @@ jiffies_to_timeval32(unsigned long jiffi
+ value->tv_sec = jiffies / HZ;
+ }
+
+-asmlinkage int
+-osf_gettimeofday(struct timeval32 __user *tv, struct timezone __user *tz)
++SYSCALL_DEFINE2(osf_gettimeofday, struct timeval32 __user *, tv,
++ struct timezone __user *, tz)
+ {
+ if (tv) {
+ struct timeval ktv;
+@@ -894,8 +886,8 @@ osf_gettimeofday(struct timeval32 __user
+ return 0;
+ }
+
+-asmlinkage int
+-osf_settimeofday(struct timeval32 __user *tv, struct timezone __user *tz)
++SYSCALL_DEFINE2(osf_settimeofday, struct timeval32 __user *, tv,
++ struct timezone __user *, tz)
+ {
+ struct timespec kts;
+ struct timezone ktz;
+@@ -914,8 +906,7 @@ osf_settimeofday(struct timeval32 __user
+ return do_sys_settimeofday(tv ? &kts : NULL, tz ? &ktz : NULL);
+ }
+
+-asmlinkage int
+-osf_getitimer(int which, struct itimerval32 __user *it)
++SYSCALL_DEFINE2(osf_getitimer, int, which, struct itimerval32 __user *, it)
+ {
+ struct itimerval kit;
+ int error;
+@@ -927,8 +918,8 @@ osf_getitimer(int which, struct itimerva
+ return error;
+ }
+
+-asmlinkage int
+-osf_setitimer(int which, struct itimerval32 __user *in, struct itimerval32 __user *out)
++SYSCALL_DEFINE3(osf_setitimer, int, which, struct itimerval32 __user *, in,
++ struct itimerval32 __user *, out)
+ {
+ struct itimerval kin, kout;
+ int error;
+@@ -950,8 +941,8 @@ osf_setitimer(int which, struct itimerva
+
+ }
+
+-asmlinkage int
+-osf_utimes(char __user *filename, struct timeval32 __user *tvs)
++SYSCALL_DEFINE2(osf_utimes, char __user *, filename,
++ struct timeval32 __user *, tvs)
+ {
+ struct timespec tv[2];
+
+@@ -977,9 +968,8 @@ osf_utimes(char __user *filename, struct
+ #define MAX_SELECT_SECONDS \
+ ((unsigned long) (MAX_SCHEDULE_TIMEOUT / HZ)-1)
+
+-asmlinkage int
+-osf_select(int n, fd_set __user *inp, fd_set __user *outp, fd_set __user *exp,
+- struct timeval32 __user *tvp)
++SYSCALL_DEFINE5(osf_select, int, n, fd_set __user *, inp, fd_set __user *, outp,
++ fd_set __user *, exp, struct timeval32 __user *, tvp)
+ {
+ s64 timeout = MAX_SCHEDULE_TIMEOUT;
+ if (tvp) {
+@@ -1023,8 +1013,7 @@ struct rusage32 {
+ long ru_nivcsw; /* involuntary " */
+ };
+
+-asmlinkage int
+-osf_getrusage(int who, struct rusage32 __user *ru)
++SYSCALL_DEFINE2(osf_getrusage, int, who, struct rusage32 __user *, ru)
+ {
+ struct rusage32 r;
+
+@@ -1050,9 +1039,8 @@ osf_getrusage(int who, struct rusage32 _
+ return copy_to_user(ru, &r, sizeof(r)) ? -EFAULT : 0;
+ }
+
+-asmlinkage long
+-osf_wait4(pid_t pid, int __user *ustatus, int options,
+- struct rusage32 __user *ur)
++SYSCALL_DEFINE4(osf_wait4, pid_t, pid, int __user *, ustatus, int, options,
++ struct rusage32 __user *, ur)
+ {
+ struct rusage r;
+ long ret, err;
+@@ -1098,8 +1086,8 @@ osf_wait4(pid_t pid, int __user *ustatus
+ * seems to be a timeval pointer, and I suspect the second
+ * one is the time remaining.. Ho humm.. No documentation.
+ */
+-asmlinkage int
+-osf_usleep_thread(struct timeval32 __user *sleep, struct timeval32 __user *remain)
++SYSCALL_DEFINE2(osf_usleep_thread, struct timeval32 __user *, sleep,
++ struct timeval32 __user *, remain)
+ {
+ struct timeval tmp;
+ unsigned long ticks;
+@@ -1152,8 +1140,7 @@ struct timex32 {
+ int :32; int :32; int :32; int :32;
+ };
+
+-asmlinkage int
+-sys_old_adjtimex(struct timex32 __user *txc_p)
++SYSCALL_DEFINE1(old_adjtimex, struct timex32 __user *, txc_p)
+ {
+ struct timex txc;
+ int ret;
+@@ -1264,8 +1251,8 @@ osf_fix_iov_len(const struct iovec __use
+ return 0;
+ }
+
+-asmlinkage ssize_t
+-osf_readv(unsigned long fd, const struct iovec __user * vector, unsigned long count)
++SYSCALL_DEFINE3(osf_readv, unsigned long, fd,
++ const struct iovec __user *, vector, unsigned long, count)
+ {
+ if (unlikely(personality(current->personality) == PER_OSF4))
+ if (osf_fix_iov_len(vector, count))
+@@ -1273,8 +1260,8 @@ osf_readv(unsigned long fd, const struct
+ return sys_readv(fd, vector, count);
+ }
+
+-asmlinkage ssize_t
+-osf_writev(unsigned long fd, const struct iovec __user * vector, unsigned long count)
++SYSCALL_DEFINE3(osf_writev, unsigned long, fd,
++ const struct iovec __user *, vector, unsigned long, count)
+ {
+ if (unlikely(personality(current->personality) == PER_OSF4))
+ if (osf_fix_iov_len(vector, count))
+diff -urpN a/arch/alpha/kernel/signal.c b/arch/alpha/kernel/signal.c
+--- a/arch/alpha/kernel/signal.c 2008-07-13 15:51:29.000000000 -0600
++++ b/arch/alpha/kernel/signal.c 2009-03-08 17:41:19.000000000 -0600
+@@ -19,6 +19,7 @@
+ #include <linux/tty.h>
+ #include <linux/binfmts.h>
+ #include <linux/bitops.h>
++#include <linux/syscalls.h>
+
+ #include <asm/uaccess.h>
+ #include <asm/sigcontext.h>
+@@ -51,8 +52,8 @@ static void do_signal(struct pt_regs *,
+ * Note that we don't need to acquire the kernel lock for SMP
+ * operation, as all of this is local to this thread.
+ */
+-asmlinkage unsigned long
+-do_osf_sigprocmask(int how, unsigned long newmask, struct pt_regs *regs)
++SYSCALL_DEFINE3(osf_sigprocmask, int, how, unsigned long, newmask,
++ struct pt_regs *, regs)
+ {
+ unsigned long oldmask = -EINVAL;
+
+@@ -81,9 +82,9 @@ do_osf_sigprocmask(int how, unsigned lon
+ return oldmask;
+ }
+
+-asmlinkage int
+-osf_sigaction(int sig, const struct osf_sigaction __user *act,
+- struct osf_sigaction __user *oact)
++SYSCALL_DEFINE3(osf_sigaction, int, sig,
++ const struct osf_sigaction __user *, act,
++ struct osf_sigaction __user *, oact)
+ {
+ struct k_sigaction new_ka, old_ka;
+ int ret;
+@@ -112,10 +113,9 @@ osf_sigaction(int sig, const struct osf_
+ return ret;
+ }
+
+-asmlinkage long
+-sys_rt_sigaction(int sig, const struct sigaction __user *act,
+- struct sigaction __user *oact,
+- size_t sigsetsize, void __user *restorer)
++SYSCALL_DEFINE5(rt_sigaction, int, sig, const struct sigaction __user *, act,
++ struct sigaction __user *, oact,
++ size_t, sigsetsize, void __user *, restorer)
+ {
+ struct k_sigaction new_ka, old_ka;
+ int ret;
+diff -urpN a/arch/alpha/kernel/systbls.S b/arch/alpha/kernel/systbls.S
+--- a/arch/alpha/kernel/systbls.S 2009-03-08 17:24:25.000000000 -0600
++++ b/arch/alpha/kernel/systbls.S 2009-03-08 17:41:19.000000000 -0600
+@@ -17,7 +17,7 @@ sys_call_table:
+ .quad sys_write
+ .quad alpha_ni_syscall /* 5 */
+ .quad sys_close
+- .quad osf_wait4
++ .quad sys_osf_wait4
+ .quad alpha_ni_syscall
+ .quad sys_link
+ .quad sys_unlink /* 10 */
+@@ -27,11 +27,11 @@ sys_call_table:
+ .quad sys_mknod
+ .quad sys_chmod /* 15 */
+ .quad sys_chown
+- .quad osf_brk
++ .quad sys_osf_brk
+ .quad alpha_ni_syscall
+ .quad sys_lseek
+ .quad sys_getxpid /* 20 */
+- .quad osf_mount
++ .quad sys_osf_mount
+ .quad sys_umount
+ .quad sys_setuid
+ .quad sys_getxuid
+@@ -53,7 +53,7 @@ sys_call_table:
+ .quad alpha_ni_syscall /* 40 */
+ .quad sys_dup
+ .quad sys_alpha_pipe
+- .quad osf_set_program_attributes
++ .quad sys_osf_set_program_attributes
+ .quad alpha_ni_syscall
+ .quad sys_open /* 45 */
+ .quad alpha_ni_syscall
+@@ -81,7 +81,7 @@ sys_call_table:
+ .quad sys_newlstat
+ .quad alpha_ni_syscall
+ .quad alpha_ni_syscall /* 70 */
+- .quad osf_mmap
++ .quad sys_osf_mmap
+ .quad alpha_ni_syscall
+ .quad sys_munmap
+ .quad sys_mprotect
+@@ -94,17 +94,17 @@ sys_call_table:
+ .quad sys_setgroups /* 80 */
+ .quad alpha_ni_syscall
+ .quad sys_setpgid
+- .quad osf_setitimer
++ .quad sys_osf_setitimer
+ .quad alpha_ni_syscall
+ .quad alpha_ni_syscall /* 85 */
+- .quad osf_getitimer
++ .quad sys_osf_getitimer
+ .quad sys_gethostname
+ .quad sys_sethostname
+ .quad sys_getdtablesize
+ .quad sys_dup2 /* 90 */
+ .quad sys_newfstat
+ .quad sys_fcntl
+- .quad osf_select
++ .quad sys_osf_select
+ .quad sys_poll
+ .quad sys_fsync /* 95 */
+ .quad sys_setpriority
+@@ -123,22 +123,22 @@ sys_call_table:
+ .quad alpha_ni_syscall
+ .quad alpha_ni_syscall /* 110 */
+ .quad sys_sigsuspend
+- .quad osf_sigstack
++ .quad sys_osf_sigstack
+ .quad sys_recvmsg
+ .quad sys_sendmsg
+ .quad alpha_ni_syscall /* 115 */
+- .quad osf_gettimeofday
+- .quad osf_getrusage
++ .quad sys_osf_gettimeofday
++ .quad sys_osf_getrusage
+ .quad sys_getsockopt
+ .quad alpha_ni_syscall
+ #ifdef CONFIG_OSF4_COMPAT
+- .quad osf_readv /* 120 */
+- .quad osf_writev
++ .quad sys_osf_readv /* 120 */
++ .quad sys_osf_writev
+ #else
+ .quad sys_readv /* 120 */
+ .quad sys_writev
+ #endif
+- .quad osf_settimeofday
++ .quad sys_osf_settimeofday
+ .quad sys_fchown
+ .quad sys_fchmod
+ .quad sys_recvfrom /* 125 */
+@@ -154,7 +154,7 @@ sys_call_table:
+ .quad sys_socketpair /* 135 */
+ .quad sys_mkdir
+ .quad sys_rmdir
+- .quad osf_utimes
++ .quad sys_osf_utimes
+ .quad alpha_ni_syscall
+ .quad alpha_ni_syscall /* 140 */
+ .quad sys_getpeername
+@@ -172,16 +172,16 @@ sys_call_table:
+ .quad alpha_ni_syscall
+ .quad alpha_ni_syscall
+ .quad alpha_ni_syscall /* 155 */
+- .quad osf_sigaction
++ .quad sys_osf_sigaction
+ .quad alpha_ni_syscall
+ .quad alpha_ni_syscall
+- .quad osf_getdirentries
+- .quad osf_statfs /* 160 */
+- .quad osf_fstatfs
++ .quad sys_osf_getdirentries
++ .quad sys_osf_statfs /* 160 */
++ .quad sys_osf_fstatfs
+ .quad alpha_ni_syscall
+ .quad alpha_ni_syscall
+ .quad alpha_ni_syscall
+- .quad osf_getdomainname /* 165 */
++ .quad sys_osf_getdomainname /* 165 */
+ .quad sys_setdomainname
+ .quad alpha_ni_syscall
+ .quad alpha_ni_syscall
+@@ -224,7 +224,7 @@ sys_call_table:
+ .quad sys_semctl
+ .quad sys_semget /* 205 */
+ .quad sys_semop
+- .quad osf_utsname
++ .quad sys_osf_utsname
+ .quad sys_lchown
+ .quad sys_shmat
+ .quad sys_shmctl /* 210 */
+@@ -258,23 +258,23 @@ sys_call_table:
+ .quad alpha_ni_syscall
+ .quad alpha_ni_syscall
+ .quad alpha_ni_syscall /* 240 */
+- .quad osf_sysinfo
++ .quad sys_osf_sysinfo
+ .quad alpha_ni_syscall
+ .quad alpha_ni_syscall
+- .quad osf_proplist_syscall
++ .quad sys_osf_proplist_syscall
+ .quad alpha_ni_syscall /* 245 */
+ .quad alpha_ni_syscall
+ .quad alpha_ni_syscall
+ .quad alpha_ni_syscall
+ .quad alpha_ni_syscall
+ .quad alpha_ni_syscall /* 250 */
+- .quad osf_usleep_thread
++ .quad sys_osf_usleep_thread
+ .quad alpha_ni_syscall
+ .quad alpha_ni_syscall
+ .quad sys_sysfs
+ .quad alpha_ni_syscall /* 255 */
+- .quad osf_getsysinfo
+- .quad osf_setsysinfo
++ .quad sys_osf_getsysinfo
++ .quad sys_osf_setsysinfo
+ .quad alpha_ni_syscall
+ .quad alpha_ni_syscall
+ .quad alpha_ni_syscall /* 260 */
+diff -urpN a/include/linux/syscalls.h b/include/linux/syscalls.h
+--- a/include/linux/syscalls.h 2009-03-08 17:24:27.000000000 -0600
++++ b/include/linux/syscalls.h 2009-03-08 17:41:19.000000000 -0600
+@@ -108,9 +108,14 @@ struct old_linux_dirent;
+ asm ("\t.globl " #alias "\n\t.set " #alias ", " #name "\n" \
+ "\t.globl ." #alias "\n\t.set ." #alias ", ." #name)
+ #else
++#ifdef CONFIG_ALPHA
++#define SYSCALL_ALIAS(alias, name) \
++ asm ( #alias " = " #name "\n\t.globl " #alias)
++#else
+ #define SYSCALL_ALIAS(alias, name) \
+ asm ("\t.globl " #alias "\n\t.set " #alias ", " #name)
+ #endif
++#endif
+
+ #ifdef CONFIG_HAVE_SYSCALL_WRAPPERS
+
Modified: dists/lenny-security/linux-2.6/debian/patches/series/13lenny2
==============================================================================
--- dists/lenny-security/linux-2.6/debian/patches/series/13lenny2 (original)
+++ dists/lenny-security/linux-2.6/debian/patches/series/13lenny2 Mon Mar 9 16:45:13 2009
@@ -9,3 +9,4 @@
+ bugfix/all/ext4-add-sanity-checks-for-the-superblock-before-mounting.patch
+ bugfix/all/CVE-2009-0029/sparc64-use-syscall-wrappers.patch
+ bugfix/all/CVE-2009-0029/sparc64-wrap-arch-specific-syscalls.patch
++ bugfix/all/CVE-2009-0029/alpha-use-syscall-wrappers.patch
More information about the Kernel-svn-changes
mailing list