[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