diff options
| author | Guillaume Nault <g.nault@alphalink.fr> | 2016-02-15 11:01:10 -0500 |
|---|---|---|
| committer | David S. Miller <davem@davemloft.net> | 2016-02-17 16:02:01 -0500 |
| commit | 29e73269aa4d36f92b35610c25f8b01c789b0dc8 (patch) | |
| tree | 72e7e31f35955e50b53c4051a2250cd96bbaf459 /drivers/net/ppp | |
| parent | 705bcdda81eda8b4b4c564c4be7b8cfad6a180d6 (diff) | |
pppoe: fix reference counting in PPPoE proxy
Drop reference on the relay_po socket when __pppoe_xmit() succeeds.
This is already handled correctly in the error path.
Signed-off-by: Guillaume Nault <g.nault@alphalink.fr>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net/ppp')
| -rw-r--r-- | drivers/net/ppp/pppoe.c | 2 |
1 files changed, 2 insertions, 0 deletions
diff --git a/drivers/net/ppp/pppoe.c b/drivers/net/ppp/pppoe.c index f3c63022eb3c..4ddae8118c85 100644 --- a/drivers/net/ppp/pppoe.c +++ b/drivers/net/ppp/pppoe.c | |||
| @@ -395,6 +395,8 @@ static int pppoe_rcv_core(struct sock *sk, struct sk_buff *skb) | |||
| 395 | 395 | ||
| 396 | if (!__pppoe_xmit(sk_pppox(relay_po), skb)) | 396 | if (!__pppoe_xmit(sk_pppox(relay_po), skb)) |
| 397 | goto abort_put; | 397 | goto abort_put; |
| 398 | |||
| 399 | sock_put(sk_pppox(relay_po)); | ||
| 398 | } else { | 400 | } else { |
| 399 | if (sock_queue_rcv_skb(sk, skb)) | 401 | if (sock_queue_rcv_skb(sk, skb)) |
| 400 | goto abort_kfree; | 402 | goto abort_kfree; |
