diff options
author | Greg Kroah-Hartman <gregkh@suse.de> | 2011-02-28 14:43:31 -0800 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@suse.de> | 2011-02-28 14:43:31 -0800 |
commit | 7f2979489926547a7a4ba7d0658592e84b91503a (patch) | |
tree | f8dbb4a9d5a2fb7138919f3f6dee712a470f9de1 | |
parent | 7a928394d22a485dba7ebd11e0e34d8c315de651 (diff) | |
download | longterm-queue-2.6.33-7f2979489926547a7a4ba7d0658592e84b91503a.tar.gz |
.33
-rw-r--r-- | queue-2.6.33/series | 1 | ||||
-rw-r--r-- | queue-2.6.33/x25-do-not-reference-freed-memory.patch | 38 |
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); + } |