Re: System crash, bisect points to "connector: convert tosynchronous netlink message processing"

From: David Miller
Date: Wed Apr 13 2011 - 13:55:25 EST


From: Venkatesh Pallipadi <venki@xxxxxxxxxx>
Date: Wed, 13 Apr 2011 10:25:39 -0700

> I started seeing crashes with linus git recently. The failure
> signature is something like:

There is a fix in net-2.6 for this already:

--------------------
commit 0e08785845093ef4ed220463a739bc8d0db95de7
Author: Patrick McHardy <kaber@xxxxxxxxx>
Date: Tue Apr 12 05:39:51 2011 +0000

connector: fix skb double free in cn_rx_skb()

When a skb is delivered to a registered callback, cn_call_callback()
incorrectly returns -ENODEV after freeing the skb, causing cn_rx_skb()
to free the skb a second time.

Reported-by: Eric B Munson <emunson@xxxxxxxxx>
Signed-off-by: Patrick McHardy <kaber@xxxxxxxxx>
Tested-by: Eric B Munson <emunson@xxxxxxxxx>
Signed-off-by: David S. Miller <davem@xxxxxxxxxxxxx>

diff --git a/drivers/connector/connector.c b/drivers/connector/connector.c
index d770058..219d88a 100644
--- a/drivers/connector/connector.c
+++ b/drivers/connector/connector.c
@@ -142,6 +142,7 @@ static int cn_call_callback(struct sk_buff *skb)
cbq->callback(msg, nsp);
kfree_skb(skb);
cn_queue_release_callback(cbq);
+ err = 0;
}

return err;
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/