summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@suse.de>2011-02-28 14:43:31 -0800
committerGreg Kroah-Hartman <gregkh@suse.de>2011-02-28 14:43:31 -0800
commit7f2979489926547a7a4ba7d0658592e84b91503a (patch)
treef8dbb4a9d5a2fb7138919f3f6dee712a470f9de1
parent7a928394d22a485dba7ebd11e0e34d8c315de651 (diff)
downloadlongterm-queue-2.6.33-7f2979489926547a7a4ba7d0658592e84b91503a.tar.gz
.33
-rw-r--r--queue-2.6.33/series1
-rw-r--r--queue-2.6.33/x25-do-not-reference-freed-memory.patch38
2 files changed, 39 insertions, 0 deletions
diff --git a/queue-2.6.33/series b/queue-2.6.33/series
index 3eb9ad2..f9dd770 100644
--- a/queue-2.6.33/series
+++ b/queue-2.6.33/series
@@ -391,3 +391,4 @@ xhci-avoid-bug-in-interrupt-context.patch
xhci-clarify-some-expressions-in-the-trb-math.patch
xhci-fix-errors-in-the-running-total-calculations-in-the-trb-math.patch
xhci-fix-an-error-in-count_sg_trbs_needed.patch
+x25-do-not-reference-freed-memory.patch
diff --git a/queue-2.6.33/x25-do-not-reference-freed-memory.patch b/queue-2.6.33/x25-do-not-reference-freed-memory.patch
new file mode 100644
index 0000000..b806c85
--- /dev/null
+++ b/queue-2.6.33/x25-do-not-reference-freed-memory.patch
@@ -0,0 +1,38 @@
+From 96642d42f076101ba98866363d908cab706d156c Mon Sep 17 00:00:00 2001
+From: David S. Miller <davem@davemloft.net>
+Date: Wed, 9 Feb 2011 21:48:36 -0800
+Subject: x25: Do not reference freed memory.
+
+From: David S. Miller <davem@davemloft.net>
+
+commit 96642d42f076101ba98866363d908cab706d156c upstream.
+
+In x25_link_free(), we destroy 'nb' before dereferencing
+'nb->dev'. Don't do this, because 'nb' might be freed
+by then.
+
+Reported-by: Randy Dunlap <randy.dunlap@oracle.com>
+Tested-by: Randy Dunlap <randy.dunlap@oracle.com>
+Signed-off-by: David S. Miller <davem@davemloft.net>
+Signed-off-by: Greg Kroah-Hartman <gregkh@suse.de>
+
+---
+ net/x25/x25_link.c | 5 ++++-
+ 1 file changed, 4 insertions(+), 1 deletion(-)
+
+--- a/net/x25/x25_link.c
++++ b/net/x25/x25_link.c
+@@ -391,9 +391,12 @@ void __exit x25_link_free(void)
+ write_lock_bh(&x25_neigh_list_lock);
+
+ list_for_each_safe(entry, tmp, &x25_neigh_list) {
++ struct net_device *dev;
++
+ nb = list_entry(entry, struct x25_neigh, node);
++ dev = nb->dev;
+ __x25_remove_neigh(nb);
+- dev_put(nb->dev);
++ dev_put(dev);
+ }
+ write_unlock_bh(&x25_neigh_list_lock);
+ }