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

From: Venkatesh Pallipadi
Date: Wed Apr 13 2011 - 14:26:13 EST


On Wed, Apr 13, 2011 at 10:54 AM, David Miller <davem@xxxxxxxxxxxxx> wrote:
> 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:
>

Yes. That works..

Thanks,
Venki

> --------------------
> 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/