On Thu, Aug 13, 2015 at 05:54:07AM +0200, Linus Lüssing wrote: > The recent refactoring of the IGMP and MLD parsing code into > ipv6_mc_check_mld() / ip_mc_check_igmp() introduced a potential crash / > BUG() invocation for bridges: > > I wrongly assumed that skb_get() could be used as a simple reference > counter for an skb which is not the case. skb_get() bears additional > semantics, a user count. This leads to a BUG() invocation in > pskb_expand_head() / kernel panic if pskb_may_pull() is called on an skb > with a user count greater than one - unfortunately the refactoring did > just that. > > Fixing this by removing the skb_get() call and changing the API: The > caller of ipv6_mc_check_mld() / ip_mc_check_igmp() now needs to > additionally check whether the returned skb_trimmed is a clone. > > Fixes: 9afd85c9e455 ("net: Export IGMP/MLD message validation code") > Reported-by: Brenden Blanco <bbla...@plumgrid.com> > Signed-off-by: Linus Lüssing <linus.luess...@c0d3.blue>
I think the fix actually made the code easier to read. Thank you. Looks good to me. Acked-by: Alexei Starovoitov <a...@plumgrid.com> -- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majord...@vger.kernel.org More majordomo info at http://vger.kernel.org/majordomo-info.html Please read the FAQ at http://www.tux.org/lkml/