diff options
author | Benjamin LaHaise <bcrl@kvack.org> | 2012-03-20 03:57:54 +0000 |
---|---|---|
committer | David S. Miller <davem@davemloft.net> | 2012-03-20 16:12:11 -0400 |
commit | bbdb32cb5b73597386913d052165423b9d736145 (patch) | |
tree | 7eaad4e895ed2947eb75d6320df8460c01d1bf6c | |
parent | a6506e1486181975d318344143aca722b2b91621 (diff) | |
download | op-kernel-dev-bbdb32cb5b73597386913d052165423b9d736145.zip op-kernel-dev-bbdb32cb5b73597386913d052165423b9d736145.tar.gz |
Fix pppol2tp getsockname()
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>
-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 96bc7a6..9b07191 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); |