summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorGreg Kroah-Hartman <gregkh@suse.de>2011-03-03 16:28:43 -0800
committerGreg Kroah-Hartman <gregkh@suse.de>2011-03-03 16:28:43 -0800
commit197307d3e6604efaf6f6a15561e29cc1a7f20c4c (patch)
treeca3212b6323ddd9fddb5972929056b2e10f5ce0c
parentd2ef937a22d5fcfbe3cfdc86249b66c5d67da5af (diff)
parent7f2979489926547a7a4ba7d0658592e84b91503a (diff)
downloadlongterm-queue-2.6.33-197307d3e6604efaf6f6a15561e29cc1a7f20c4c.tar.gz
Merge branch 'master' of master.kernel.org:/pub/scm/linux/kernel/git/longterm/longterm-queue-2.6.33
Conflicts: queue-2.6.33/series
-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 c40b760..d3dfc15 100644
--- a/queue-2.6.33/series
+++ b/queue-2.6.33/series
@@ -400,3 +400,4 @@ clockevents-prevent-oneshot-mode-when-broadcast-device-is-periodic.patch
ext2-fix-link-count-corruption-under-heavy-link-rename-load.patch
virtio-set-pci-bus-master-enable-bit.patch
e1000e-82579-phy-incorrectly-identified-during-init.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);
+ }