diff options
author | Florian Zumbiehl <florz@florz.de> | 2007-07-30 17:49:13 -0700 |
---|---|---|
committer | David S. Miller <davem@sunset.davemloft.net> | 2007-07-31 02:28:23 -0700 |
commit | 8aeca8fea5f2de2563e097829d62af30ca2de650 (patch) | |
tree | d7fe27b3cef67e8f44836082ea21c42e88ab5d58 /drivers/net | |
parent | 86c1dcfc96a778433ebc6e9b1d3e80a126cb80f2 (diff) | |
download | linux-8aeca8fea5f2de2563e097829d62af30ca2de650.tar.gz linux-8aeca8fea5f2de2563e097829d62af30ca2de650.tar.bz2 linux-8aeca8fea5f2de2563e097829d62af30ca2de650.zip |
[PPPoE]: move lock_sock() in pppoe_sendmsg() to the right location
and the last one for now: Acquire the sock lock in pppoe_sendmsg()
before accessing the sock - and in particular avoid releasing the lock
even though it hasn't been acquired.
Signed-off-by: Florian Zumbiehl <florz@florz.de>
Signed-off-by: David S. Miller <davem@davemloft.net>
Diffstat (limited to 'drivers/net')
-rw-r--r-- | drivers/net/pppoe.c | 3 |
1 files changed, 1 insertions, 2 deletions
diff --git a/drivers/net/pppoe.c b/drivers/net/pppoe.c index f75aeaaf861f..35a7385ccb2a 100644 --- a/drivers/net/pppoe.c +++ b/drivers/net/pppoe.c @@ -774,6 +774,7 @@ static int pppoe_sendmsg(struct kiocb *iocb, struct socket *sock, struct net_device *dev; char *start; + lock_sock(sk); if (sock_flag(sk, SOCK_DEAD) || !(sk->sk_state & PPPOX_CONNECTED)) { error = -ENOTCONN; goto end; @@ -784,8 +785,6 @@ static int pppoe_sendmsg(struct kiocb *iocb, struct socket *sock, hdr.code = 0; hdr.sid = po->num; - lock_sock(sk); - dev = po->pppoe_dev; error = -EMSGSIZE; |