diff --git a/[refs] b/[refs] index 1c6d1b85a5ff..921f7635fef5 100644 --- a/[refs] +++ b/[refs] @@ -1,2 +1,2 @@ --- -refs/heads/master: 3ac108006fd7f20cb8fc8ea2287f1497bcda00a1 +refs/heads/master: 071d93931a75dc1f82f0baa9959613af81c5a032 diff --git a/trunk/net/atm/pppoatm.c b/trunk/net/atm/pppoatm.c index c4a57bca77bf..aeb726cffc8c 100644 --- a/trunk/net/atm/pppoatm.c +++ b/trunk/net/atm/pppoatm.c @@ -284,6 +284,13 @@ static int pppoatm_send(struct ppp_channel *chan, struct sk_buff *skb) bh_lock_sock(sk_atm(vcc)); if (sock_owned_by_user(sk_atm(vcc))) goto nospace; + if (test_bit(ATM_VF_RELEASED, &vcc->flags) || + test_bit(ATM_VF_CLOSE, &vcc->flags) || + !test_bit(ATM_VF_READY, &vcc->flags)) { + bh_unlock_sock(sk_atm(vcc)); + kfree_skb(skb); + return DROP_PACKET; + } switch (pvcc->encaps) { /* LLC encapsulation needed */ case e_llc: