提交 bbdb32cb 编写于 作者: B Benjamin LaHaise 提交者: David S. Miller

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: NBenjamin LaHaise <bcrl@kvack.org>
Signed-off-by: NJames Chapman <jchapman@katalix.com>
Signed-off-by: NDavid S. Miller <davem@davemloft.net>
上级 a6506e14
...@@ -915,7 +915,7 @@ static int pppol2tp_getname(struct socket *sock, struct sockaddr *uaddr, ...@@ -915,7 +915,7 @@ static int pppol2tp_getname(struct socket *sock, struct sockaddr *uaddr,
goto end_put_sess; goto end_put_sess;
} }
inet = inet_sk(sk); inet = inet_sk(tunnel->sock);
if (tunnel->version == 2) { if (tunnel->version == 2) {
struct sockaddr_pppol2tp sp; struct sockaddr_pppol2tp sp;
len = sizeof(sp); len = sizeof(sp);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册