On 5 June 2014 15:33, Luis Henriques <luis.henriques@xxxxxxxxxxxxx> wrote: > On Wed, Jun 04, 2014 at 09:16:25PM -0700, Greg Kroah-Hartman wrote: >> 3.4-stable review patch. If anyone has any objections, please let me know. >> [...] >> --- a/net/core/filter.c >> +++ b/net/core/filter.c >> @@ -338,11 +338,15 @@ load_b: >> >> if (skb_is_nonlinear(skb)) >> return 0; >> + if (skb->len < sizeof(struct nlattr)) >> + return 0; >> + if (skb->len < sizeof(struct nlattr)) >> + return 0; > > There above code is duplicated this backport. The same comment > applies to the 3.2.y backport (I've added Ben to the CC list). > Good catch! The diff should look more like the the one in the attachment. I guess patch(1) just failed here to find the right place to apply the hunk to. Thanks, Mathias
diff --git a/net/core/filter.c b/net/core/filter.c index 6f755cc..3b7398a 100644 --- a/net/core/filter.c +++ b/net/core/filter.c @@ -322,6 +322,8 @@ load_b: if (skb_is_nonlinear(skb)) return 0; + if (skb->len < sizeof(struct nlattr)) + return 0; if (A > skb->len - sizeof(struct nlattr)) return 0; @@ -338,11 +340,13 @@ load_b: if (skb_is_nonlinear(skb)) return 0; + if (skb->len < sizeof(struct nlattr)) + return 0; if (A > skb->len - sizeof(struct nlattr)) return 0; nla = (struct nlattr *)&skb->data[A]; - if (nla->nla_len > A - skb->len) + if (nla->nla_len > skb->len - A) return 0; nla = nla_find_nested(nla, X);