lists.openwall.net   lists  /  announce  owl-users  owl-dev  john-users  john-dev  passwdqc-users  yescrypt  popa3d-users  /  oss-security  kernel-hardening  musl  sabotage  tlsify  passwords  /  crypt-dev  xvendor  /  Bugtraq  Full-Disclosure  linux-kernel  linux-netdev  linux-ext4  linux-hardening  linux-cve-announce  PHC 
Open Source and information security mailing list archives
 
Hash Suite for Android: free password hash cracker in your pocket
[<prev] [next>] [<thread-prev] [thread-next>] [day] [month] [year] [list]
Date:	Sun, 19 Dec 2010 23:15:50 +0100
From:	Jarek Poplawski <jarkao2@...il.com>
To:	Paweł Staszewski <pstaszewski@...are.pl>
CC:	Changli Gao <xiaosuo@...il.com>,
	Eric Dumazet <eric.dumazet@...il.com>,
	Linux Network Development list <netdev@...r.kernel.org>
Subject: Re: Kernel panic eth2 mirred redirect to ifb0

Paweł Staszewski wrote:
> W dniu 2010-12-19 17:22, Changli Gao pisze:
>> 2010/12/20 Paweł Staszewski<pstaszewski@...are.pl>:
>>> W dniu 2010-12-19 16:43, Eric Dumazet pisze:
>>>> Unfortunately, we miss the start of panic messages. Could you try to
>>>> get
>>>> them ?
>>>>
>>> In attached images
>>>
>> It seems the kernel panic at:
>>
>>          if (skb_shared(skb))
>>                  BUG();
>>
>> in pskb_expand_head().
>>
>> It maybe related to my patch:
>> http://git.kernel.org/?p=linux/kernel/git/davem/net-next-2.6.git;a=commitdiff;h=210d6de78c5d7c785fc532556cea340e517955e1
>>
>>
>> You can try to revert it and test again.
>>
>> However, the bug is a misuse of pskb_expand_head().
>>
> patching file net/sched/act_mirred.c
> Hunk #1 FAILED at 169.
> Hunk #2 succeeded at 195 (offset 10 lines).
> 1 out of 2 hunks FAILED -- saving rejects to file
> net/sched/act_mirred.c.rej
> 
> ***************
> *** 169,181 ****
>                 goto out;
>         }
> 
> -       at = G_TC_AT(skb->tc_verd);
> -       skb2 = skb_act_clone(skb, GFP_ATOMIC, m->tcf_action);
>         if (skb2 == NULL)
>                 goto out;
> 
>         m->tcf_bstats.bytes += qdisc_pkt_len(skb2);
>         m->tcf_bstats.packets++;
>         if (!(at & AT_EGRESS)) {
>                 if (m->tcfm_ok_push)
>                         skb_push(skb2, skb2->dev->hard_header_len);
> --- 169,181 ----
>                 goto out;
>         }
> 
> +       skb2 = skb_act_clone(skb, GFP_ATOMIC);
>         if (skb2 == NULL)
>                 goto out;
> 
>         m->tcf_bstats.bytes += qdisc_pkt_len(skb2);
>         m->tcf_bstats.packets++;
> +       at = G_TC_AT(skb->tc_verd);
>         if (!(at & AT_EGRESS)) {
>                 if (m->tcfm_ok_push)
>                         skb_push(skb2, skb2->dev->hard_header_len);
> 
> for sch_generic.h was ok.

Should be enough to try after reverting this sch_generic.h change only.

Jarek P.

--
To unsubscribe from this list: send the line "unsubscribe netdev" in
the body of a message to majordomo@...r.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Powered by blists - more mailing lists