Commit 263e69cb authored by David S. Miller's avatar David S. Miller

pppoe: Fix socket leak.

Move SKB trim before we lookup the socket so we don't have to
put it on failure.

Based upon an initial patch by Jarek Poplawski and suggestions
from Herbert Xu.
Signed-off-by: default avatarDavid S. Miller <davem@davemloft.net>
parent 721d5dfe
...@@ -399,11 +399,11 @@ static int pppoe_rcv(struct sk_buff *skb, ...@@ -399,11 +399,11 @@ static int pppoe_rcv(struct sk_buff *skb,
if (skb->len < len) if (skb->len < len)
goto drop; goto drop;
po = get_item(ph->sid, eth_hdr(skb)->h_source, dev->ifindex); if (pskb_trim_rcsum(skb, len))
if (!po)
goto drop; goto drop;
if (pskb_trim_rcsum(skb, len)) po = get_item(ph->sid, eth_hdr(skb)->h_source, dev->ifindex);
if (!po)
goto drop; goto drop;
return sk_receive_skb(sk_pppox(po), skb, 0); return sk_receive_skb(sk_pppox(po), skb, 0);
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment