diff --git a/[refs] b/[refs] index 26e72b3b085f..b423ffac49d2 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 51e97a12bef19b7e43199fc153cf9bd5f2140362 +refs/heads/master: 4e18b3edf71f5d4ad653e3c2ff6560878e965f96 diff --git a/trunk/net/sched/cls_u32.c b/trunk/net/sched/cls_u32.c index 7416a5c73b2a..b0c2a82178af 100644 --- a/trunk/net/sched/cls_u32.c +++ b/trunk/net/sched/cls_u32.c @@ -137,7 +137,7 @@ static int u32_classify(struct sk_buff *skb, struct tcf_proto *tp, struct tcf_re int toff = off + key->off + (off2 & key->offmask); __be32 *data, _data; - if (skb_headroom(skb) + toff < 0) + if (skb_headroom(skb) + toff > INT_MAX) goto out; data = skb_header_pointer(skb, toff, 4, &_data);