mirror of
https://github.com/torvalds/linux.git
synced 2024-11-22 20:22:09 +00:00
[ATM] CLIP: Do not refer freed skbuff in clip_mkip().
In clip_mkip(), skb->dev is dereferenced after clip_push(), which frees up skb. Advisory: AD_LAB-06009 (<adlab@venustech.com.cn>). Signed-off-by: YOSHIFUJI Hideaki <yoshfuji@linux-ipv6.org> Signed-off-by: David S. Miller <davem@davemloft.net>
This commit is contained in:
parent
d7811e623d
commit
fe26109a9d
@ -500,9 +500,11 @@ static int clip_mkip(struct atm_vcc *vcc, int timeout)
|
|||||||
} else {
|
} else {
|
||||||
unsigned int len = skb->len;
|
unsigned int len = skb->len;
|
||||||
|
|
||||||
|
skb_get(skb);
|
||||||
clip_push(vcc, skb);
|
clip_push(vcc, skb);
|
||||||
PRIV(skb->dev)->stats.rx_packets--;
|
PRIV(skb->dev)->stats.rx_packets--;
|
||||||
PRIV(skb->dev)->stats.rx_bytes -= len;
|
PRIV(skb->dev)->stats.rx_bytes -= len;
|
||||||
|
kfree_skb(skb);
|
||||||
}
|
}
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user