[kernel] r13213 - in dists/etch-security/linux-2.6.24/debian/patches: bugfix/all/CVE-2009-0029 series
Dann Frazier
dannf at alioth.debian.org
Mon Mar 23 06:17:09 UTC 2009
Author: dannf
Date: Mon Mar 23 06:17:06 2009
New Revision: 13213
Log:
add alpha changes for CVE-2009-0029
Added:
dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/alpha-use-syscall-wrappers.patch
- copied, changed from r13170, /dists/lenny-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/alpha-use-syscall-wrappers.patch
Modified:
dists/etch-security/linux-2.6.24/debian/patches/series/6~etchnhalf.8etch1
Copied: dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/alpha-use-syscall-wrappers.patch (from r13170, /dists/lenny-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/alpha-use-syscall-wrappers.patch)
==============================================================================
--- /dists/lenny-security/linux-2.6/debian/patches/bugfix/all/CVE-2009-0029/alpha-use-syscall-wrappers.patch (original)
+++ dists/etch-security/linux-2.6.24/debian/patches/bugfix/all/CVE-2009-0029/alpha-use-syscall-wrappers.patch Mon Mar 23 06:17:06 2009
@@ -576,3 +576,565 @@
#ifdef CONFIG_HAVE_SYSCALL_WRAPPERS
+diff -urpN a/arch/alpha/Kconfig b/arch/alpha/Kconfig
+--- a/arch/alpha/Kconfig 2008-01-24 15:58:37.000000000 -0700
++++ b/arch/alpha/Kconfig 2009-03-23 00:07:01.000000000 -0600
+@@ -5,6 +5,7 @@
+ config ALPHA
+ bool
+ default y
++ 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-23 00:04:49.000000000 -0600
++++ b/arch/alpha/kernel/entry.S 2009-03-23 00:06:12.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-01-24 15:58:37.000000000 -0700
++++ b/arch/alpha/kernel/osf_sys.c 2009-03-23 00:06:12.000000000 -0600
+@@ -55,8 +55,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)
+@@ -67,9 +66,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 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)
+ {
+ fd_set_bits fds;
+ char *bits;
+@@ -1084,8 +1074,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;
+
+@@ -1111,9 +1100,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;
+@@ -1159,8 +1147,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;
+@@ -1213,8 +1201,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;
+@@ -1325,8 +1312,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))
+@@ -1334,8 +1321,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-01-24 15:58:37.000000000 -0700
++++ b/arch/alpha/kernel/signal.c 2009-03-23 00:06:12.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-23 00:04:49.000000000 -0600
++++ b/arch/alpha/kernel/systbls.S 2009-03-23 00:06:12.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-23 00:04:51.000000000 -0600
++++ b/include/linux/syscalls.h 2009-03-23 00:06:12.000000000 -0600
+@@ -109,9 +109,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/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 (original)
+++ dists/etch-security/linux-2.6.24/debian/patches/series/6~etchnhalf.8etch1 Mon Mar 23 06:17:06 2009
@@ -66,3 +66,4 @@
+ 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
More information about the Kernel-svn-changes
mailing list