Author: marti                        Date: Wed Jul 20 14:07:16 2011 GMT
Module: packages                      Tag: HEAD
---- Log message:
- patch fixing CVE-2011-2484
- source info: 
http://git.kernel.org/?p=linux/kernel/git/torvalds/linux-2.6.git;a=commit;h=26c4caea9d697043cc5a458b96411b86d7f6babd

---- Files affected:
packages/kernel:
   kernel-CVE-2011-2484.patch (NONE -> 1.1)  (NEW)

---- Diffs:

================================================================
Index: packages/kernel/kernel-CVE-2011-2484.patch
diff -u /dev/null packages/kernel/kernel-CVE-2011-2484.patch:1.1
--- /dev/null   Wed Jul 20 16:07:16 2011
+++ packages/kernel/kernel-CVE-2011-2484.patch  Wed Jul 20 16:07:11 2011
@@ -0,0 +1,43 @@
+diff -ur linux-2.6.38-orig/kernel/taskstats.c linux-2.6.38/kernel/taskstats.c
+--- linux-2.6.38-orig/kernel/taskstats.c       2011-07-20 12:39:15.000000000 
+0200
++++ linux-2.6.38/kernel/taskstats.c    2011-07-20 12:59:18.000000000 +0200
+@@ -288,16 +288,18 @@
+ static int add_del_listener(pid_t pid, const struct cpumask *mask, int isadd)
+ {
+       struct listener_list *listeners;
+-      struct listener *s, *tmp;
++      struct listener *s, *tmp, *s2;
+       unsigned int cpu;
+ 
+       if (!cpumask_subset(mask, cpu_possible_mask))
+               return -EINVAL;
+-
++      
++      s = NULL;
+       if (isadd == REGISTER) {
+               for_each_cpu(cpu, mask) {
+-                      s = kmalloc_node(sizeof(struct listener), GFP_KERNEL,
+-                                       cpu_to_node(cpu));
++                      if (!s)
++                              s = kmalloc_node(sizeof(struct listener),
++                                              GFP_KERNEL, cpu_to_node(cpu));
+                       if (!s)
+                               goto cleanup;
+                       s->pid = pid;
+@@ -306,9 +308,16 @@
+ 
+                       listeners = &per_cpu(listener_array, cpu);
+                       down_write(&listeners->sem);
++                      list_for_each_entry_safe(s2, tmp, &listeners->list, 
list) {
++                              if (s2->pid == pid)
++                                      goto next_cpu;
++                      }
+                       list_add(&s->list, &listeners->list);
++                      s = NULL;
++next_cpu:
+                       up_write(&listeners->sem);
+               }
++              kfree(s);
+               return 0;
+       }
+ 
================================================================
_______________________________________________
pld-cvs-commit mailing list
[email protected]
http://lists.pld-linux.org/mailman/listinfo/pld-cvs-commit

Reply via email to