diff options
author | Benjamin LaHaise <bcrl@kvack.org> | 2012-03-20 03:57:54 +0000 |
---|---|---|
committer | Greg Kroah-Hartman <gregkh@linuxfoundation.org> | 2012-04-02 09:53:07 -0700 |
commit | 9ec476d98f2ee3e851549e2a926a3db9477f4807 (patch) | |
tree | 7d91c551df6eda033f5138dec5230be0aa9ace54 /net/l2tp | |
parent | 982b8bf53d1b4a8ab091d9218ce71b817a19fbb4 (diff) | |
download | linux-stable-9ec476d98f2ee3e851549e2a926a3db9477f4807.tar.gz linux-stable-9ec476d98f2ee3e851549e2a926a3db9477f4807.tar.bz2 linux-stable-9ec476d98f2ee3e851549e2a926a3db9477f4807.zip |
Fix pppol2tp getsockname()
[ Upstream commit bbdb32cb5b73597386913d052165423b9d736145 ]
While testing L2TP functionality, I came across a bug in getsockname(). The
IP address returned within the pppol2tp_addr's addr memember was not being
set to the IP address in use. This bug is caused by using inet_sk() on the
wrong socket (the L2TP socket rather than the underlying UDP socket), and was
likely introduced during the addition of L2TPv3 support.
Signed-off-by: Benjamin LaHaise <bcrl@kvack.org>
Signed-off-by: James Chapman <jchapman@katalix.com>
Signed-off-by: David S. Miller <davem@davemloft.net>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
Diffstat (limited to 'net/l2tp')
-rw-r--r-- | net/l2tp/l2tp_ppp.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/net/l2tp/l2tp_ppp.c b/net/l2tp/l2tp_ppp.c index 8a90d756c904..b1bd16f142bd 100644 --- a/net/l2tp/l2tp_ppp.c +++ b/net/l2tp/l2tp_ppp.c @@ -915,7 +915,7 @@ static int pppol2tp_getname(struct socket *sock, struct sockaddr *uaddr, goto end_put_sess; } - inet = inet_sk(sk); + inet = inet_sk(tunnel->sock); if (tunnel->version == 2) { struct sockaddr_pppol2tp sp; len = sizeof(sp); |