From: Greg Kroah-Hartman Date: Thu, 15 Dec 2005 20:49:23 +0000 (-0800) Subject: 2.6.13.5 release X-Git-Tag: v2.6.13.5^0 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=a83d93b2f8d6d045facdff97b7b85b6ce59e7dfe;p=thirdparty%2Fkernel%2Fstable-queue.git 2.6.13.5 release --- diff --git a/review-2.6.13/br-fix-race-on-bridge-del-if.patch b/2.6.13.5/br-fix-race-on-bridge-del-if.patch similarity index 100% rename from review-2.6.13/br-fix-race-on-bridge-del-if.patch rename to 2.6.13.5/br-fix-race-on-bridge-del-if.patch diff --git a/queue-2.6.13/cve-2005-2709-sysctl-unregistration-oops.patch b/2.6.13.5/cve-2005-2709-sysctl-unregistration-oops.patch similarity index 83% rename from queue-2.6.13/cve-2005-2709-sysctl-unregistration-oops.patch rename to 2.6.13.5/cve-2005-2709-sysctl-unregistration-oops.patch index 5dbbdc13a7b..8c46b17fada 100644 --- a/queue-2.6.13/cve-2005-2709-sysctl-unregistration-oops.patch +++ b/2.6.13.5/cve-2005-2709-sysctl-unregistration-oops.patch @@ -20,10 +20,16 @@ otherwise be. Signed-off-by: Greg Kroah-Hartman -diff -urN current/arch/s390/appldata/appldata_base.c sysctl/arch/s390/appldata/appldata_base.c ---- current/arch/s390/appldata/appldata_base.c 2005-08-28 23:09:40.000000000 -0400 -+++ sysctl/arch/s390/appldata/appldata_base.c 2005-11-03 08:53:57.000000000 -0500 -@@ -592,12 +592,15 @@ +--- + arch/s390/appldata/appldata_base.c | 7 + + include/linux/proc_fs.h | 1 + include/linux/sysctl.h | 3 + kernel/sysctl.c | 136 +++++++++++++++++++++++++++++-------- + 4 files changed, 116 insertions(+), 31 deletions(-) + +--- linux-2.6.13.4.orig/arch/s390/appldata/appldata_base.c ++++ linux-2.6.13.4/arch/s390/appldata/appldata_base.c +@@ -592,12 +592,15 @@ int appldata_register_ops(struct appldat */ void appldata_unregister_ops(struct appldata_ops *ops) { @@ -41,10 +47,9 @@ diff -urN current/arch/s390/appldata/appldata_base.c sysctl/arch/s390/appldata/a P_INFO("%s-ops unregistered!\n", ops->name); } /********************** module-ops management **************************/ -diff -urN current/include/linux/proc_fs.h sysctl/include/linux/proc_fs.h ---- current/include/linux/proc_fs.h 2005-08-28 23:09:48.000000000 -0400 -+++ sysctl/include/linux/proc_fs.h 2005-11-03 08:43:22.000000000 -0500 -@@ -66,6 +66,7 @@ +--- linux-2.6.13.4.orig/include/linux/proc_fs.h ++++ linux-2.6.13.4/include/linux/proc_fs.h +@@ -66,6 +66,7 @@ struct proc_dir_entry { write_proc_t *write_proc; atomic_t count; /* use count */ int deleted; /* delete flag */ @@ -52,9 +57,8 @@ diff -urN current/include/linux/proc_fs.h sysctl/include/linux/proc_fs.h }; struct kcore_list { -diff -urN current/include/linux/sysctl.h sysctl/include/linux/sysctl.h ---- current/include/linux/sysctl.h 2005-10-28 16:42:49.000000000 -0400 -+++ sysctl/include/linux/sysctl.h 2005-11-03 08:43:22.000000000 -0500 +--- linux-2.6.13.4.orig/include/linux/sysctl.h ++++ linux-2.6.13.4/include/linux/sysctl.h @@ -24,6 +24,7 @@ #include @@ -63,7 +67,7 @@ diff -urN current/include/linux/sysctl.h sysctl/include/linux/sysctl.h #define CTL_MAXNAME 10 /* how many path components do we allow in a call to sysctl? In other words, what is -@@ -925,6 +926,8 @@ +@@ -894,6 +895,8 @@ struct ctl_table_header { ctl_table *ctl_table; struct list_head ctl_entry; @@ -72,10 +76,9 @@ diff -urN current/include/linux/sysctl.h sysctl/include/linux/sysctl.h }; struct ctl_table_header * register_sysctl_table(ctl_table * table, -diff -urN current/kernel/sysctl.c sysctl/kernel/sysctl.c ---- current/kernel/sysctl.c 2005-10-28 16:42:49.000000000 -0400 -+++ sysctl/kernel/sysctl.c 2005-11-03 08:50:17.000000000 -0500 -@@ -169,7 +169,7 @@ +--- linux-2.6.13.4.orig/kernel/sysctl.c ++++ linux-2.6.13.4/kernel/sysctl.c +@@ -171,7 +171,7 @@ struct file_operations proc_sys_file_ope extern struct proc_dir_entry *proc_sys_root; @@ -84,7 +87,7 @@ diff -urN current/kernel/sysctl.c sysctl/kernel/sysctl.c static void unregister_proc_table(ctl_table *, struct proc_dir_entry *); #endif -@@ -992,10 +992,51 @@ +@@ -994,10 +994,51 @@ static ctl_table dev_table[] = { extern void init_irq_proc (void); @@ -137,7 +140,7 @@ diff -urN current/kernel/sysctl.c sysctl/kernel/sysctl.c init_irq_proc(); #endif } -@@ -1004,6 +1045,7 @@ +@@ -1006,6 +1047,7 @@ int do_sysctl(int __user *name, int nlen void __user *newval, size_t newlen) { struct list_head *tmp; @@ -145,7 +148,7 @@ diff -urN current/kernel/sysctl.c sysctl/kernel/sysctl.c if (nlen <= 0 || nlen >= CTL_MAXNAME) return -ENOTDIR; -@@ -1012,20 +1054,30 @@ +@@ -1014,20 +1056,30 @@ int do_sysctl(int __user *name, int nlen if (!oldlenp || get_user(old_len, oldlenp)) return -EFAULT; } @@ -162,7 +165,7 @@ diff -urN current/kernel/sysctl.c sysctl/kernel/sysctl.c + + spin_unlock(&sysctl_lock); + -+ error = parse_table(name, nlen, oldval, oldlenp, ++ error = parse_table(name, nlen, oldval, oldlenp, newval, newlen, head->ctl_table, &context); kfree(context); @@ -181,7 +184,7 @@ diff -urN current/kernel/sysctl.c sysctl/kernel/sysctl.c } asmlinkage long sys_sysctl(struct __sysctl_args __user *args) -@@ -1236,12 +1288,16 @@ +@@ -1238,12 +1290,16 @@ struct ctl_table_header *register_sysctl return NULL; tmp->ctl_table = table; INIT_LIST_HEAD(&tmp->ctl_entry); @@ -199,7 +202,7 @@ diff -urN current/kernel/sysctl.c sysctl/kernel/sysctl.c #endif return tmp; } -@@ -1255,10 +1311,13 @@ +@@ -1257,10 +1313,13 @@ struct ctl_table_header *register_sysctl */ void unregister_sysctl_table(struct ctl_table_header * header) { @@ -214,7 +217,7 @@ diff -urN current/kernel/sysctl.c sysctl/kernel/sysctl.c kfree(header); } -@@ -1269,7 +1328,7 @@ +@@ -1271,7 +1330,7 @@ void unregister_sysctl_table(struct ctl_ #ifdef CONFIG_PROC_FS /* Scan the sysctl entries in table and add them all into /proc */ @@ -223,7 +226,7 @@ diff -urN current/kernel/sysctl.c sysctl/kernel/sysctl.c { struct proc_dir_entry *de; int len; -@@ -1305,13 +1364,14 @@ +@@ -1307,13 +1366,14 @@ static void register_proc_table(ctl_tabl de = create_proc_entry(table->procname, mode, root); if (!de) continue; @@ -239,7 +242,7 @@ diff -urN current/kernel/sysctl.c sysctl/kernel/sysctl.c } } -@@ -1336,6 +1396,13 @@ +@@ -1338,6 +1398,13 @@ static void unregister_proc_table(ctl_ta continue; } @@ -253,7 +256,7 @@ diff -urN current/kernel/sysctl.c sysctl/kernel/sysctl.c /* Don't unregister proc entries that are still being used.. */ if (atomic_read(&de->count)) continue; -@@ -1349,27 +1416,38 @@ +@@ -1351,27 +1418,38 @@ static ssize_t do_rw_proc(int write, str size_t count, loff_t *ppos) { int op; @@ -294,7 +297,7 @@ diff -urN current/kernel/sysctl.c sysctl/kernel/sysctl.c + op = (write ? 002 : 004); + if (ctl_perm(table, op)) + goto out; -+ ++ + /* careful: calling conventions are nasty here */ + res = count; + error = (*table->proc_handler)(table, write, file, @@ -310,8 +313,3 @@ diff -urN current/kernel/sysctl.c sysctl/kernel/sysctl.c } static int proc_opensys(struct inode *inode, struct file *file) -_______________________________________________ -Security mailing list -Security@linux.kernel.org -http://linux.kernel.org/mailman/listinfo/security - diff --git a/review-2.6.13/series b/2.6.13.5/series similarity index 55% rename from review-2.6.13/series rename to 2.6.13.5/series index 79f17108d92..31ce93fa387 100644 --- a/review-2.6.13/series +++ b/2.6.13.5/series @@ -1,2 +1,3 @@ -sparc64-build-fix.patch br-fix-race-on-bridge-del-if.patch +cve-2005-2709-sysctl-unregistration-oops.patch +sparc64-build-fix.patch diff --git a/review-2.6.13/sparc64-build-fix.patch b/2.6.13.5/sparc64-build-fix.patch similarity index 100% rename from review-2.6.13/sparc64-build-fix.patch rename to 2.6.13.5/sparc64-build-fix.patch diff --git a/queue-2.6.13/series b/queue-2.6.13/series deleted file mode 100644 index 82a741a4706..00000000000 --- a/queue-2.6.13/series +++ /dev/null @@ -1,2 +0,0 @@ -cve-2005-2709-sysctl-unregistration-oops.patch -series