From mboxrd@z Thu Jan 1 00:00:00 1970 From: James Chapman Subject: Re: [PATCH] Fix pppol2tp getsockname() Date: Tue, 20 Mar 2012 12:21:05 +0000 Message-ID: <4F687631.1080507@katalix.com> References: <20120319031534.GC11293@kvack.org> <4F686EE5.4040400@katalix.com> Mime-Version: 1.0 Content-Type: text/plain; charset=ISO-8859-1 Content-Transfer-Encoding: 7bit Cc: "David S. Miller" , netdev@vger.kernel.org To: Benjamin LaHaise Return-path: Received: from katalix.com ([82.103.140.233]:56696 "EHLO mail.katalix.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1756610Ab2CTMVH (ORCPT ); Tue, 20 Mar 2012 08:21:07 -0400 In-Reply-To: <4F686EE5.4040400@katalix.com> Sender: netdev-owner@vger.kernel.org List-ID: On 20/03/12 11:49, James Chapman wrote: > On 19/03/12 03:15, Benjamin LaHaise wrote: >> >> 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. >> --- >> 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); > > The patch is incorrect. > > This is supposed to return the socket info of the pppol2tp socket, not > the tunnel socket. It is used by pppd's pppol2tp plugin to check that > the fd supplied is the right socket type. Sorry, my mistake. This patch is fine.