Received: by 2002:a25:31c3:0:0:0:0:0 with SMTP id x186csp2915735ybx; Fri, 8 Nov 2019 11:13:26 -0800 (PST) X-Google-Smtp-Source: APXvYqyyYybD3x2HMzbwVI4lnDe9S+H0JnkUCqGUfG59WWX7f52YsYv5Wag02rPsCH9DmhH+snI1 X-Received: by 2002:a17:906:a40e:: with SMTP id l14mr10298836ejz.168.1573240406359; Fri, 08 Nov 2019 11:13:26 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1573240406; cv=none; d=google.com; s=arc-20160816; b=ZIpCSRKxghztngx1zeSXLRfgHsptikNwAYdNI7Nl+uon4NnbWdDGf/+Mr5nEWMLCAC muCFGEQ1jbo0L79sIo5+v83VjablA7rMSfCXiG/LnuBfVDe0ZX1gzkBhYeZqQo7PDNPX 6lWcfdJq6kc80xTEdNn+Nl703GNwnXgrPQf+zvcm+jlzLJEiVN+a0fe0njbF6Sm2tKzY t+LblxR0+APgimIkslQYujWvecqkwVhxsc9Xmh7u7X8WTDJ4h/azJkzRzm2nC9rGQb/q eAIEocHY9QAOviQWalFU+Wps9NRVt1wuNRZUatAOFX2jUb53oZgk780c9MF/uWkoVTJO NBCg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:content-transfer-encoding:mime-version :user-agent:references:in-reply-to:message-id:date:subject:cc:to :from:dkim-signature; bh=dQskwx2ouNOP+wyKarLHE+lvM2KoSYGfIeXIsBvV+JA=; b=gaEjcSHP71k24gcq5UHRNZpt1hWQz/EWf2RB/sPG1MLGelBwj8CezkaBKJmzLFN3zU t8g/WFD4qgqb2FjVkU+YD9aVck7TLLBZvPJEXpbtc/kB0N2dierN9ykhwJtvwS9DlWtv enJ+aHLHvp7DloXdn2s4VrOSHSljbdfblsIBCjXw5aTt4BeX361MR8B4MPjyC4OKFoPo PeOORnWvvpa10AS09laT8mjyEFubKtMLw0tEXxy+HkcE6pb1GuEYjNxT3hJRJaFrfyUR IMDncoxyJ/xqP+wOnyEzdZ6gAepkowtEObs7QlseeepZYgRxxFp7pYGaBny/J8pkbulG y/qA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=uReeluiV; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id t6si4656426edr.52.2019.11.08.11.13.02; Fri, 08 Nov 2019 11:13:26 -0800 (PST) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=uReeluiV; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S2391753AbfKHTJN (ORCPT + 99 others); Fri, 8 Nov 2019 14:09:13 -0500 Received: from mail.kernel.org ([198.145.29.99]:40702 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2391265AbfKHTJM (ORCPT ); Fri, 8 Nov 2019 14:09:12 -0500 Received: from localhost (83-86-89-107.cable.dynamic.v4.ziggo.nl [83.86.89.107]) (using TLSv1.2 with cipher ECDHE-RSA-AES256-GCM-SHA384 (256/256 bits)) (No client certificate requested) by mail.kernel.org (Postfix) with ESMTPSA id CE28620673; Fri, 8 Nov 2019 19:09:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1573240151; bh=bFVV/iIHpHr3hvUTYGoxW8Qv37Qz2Fo++BWXnU1I4B4=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=uReeluiVI6mJtytiBbi+WcGBr+82VT2hD+23tKVb8IIrXabtnZB2oBZB1yoxhCw7E NhSFomFuvKGLqsKfzJzPPUsoHsJ2697mDkRahVuNUrv4jnYyrkRDRHEXM3W3ZkTu/s e6NEbG+KVludph1aCmPEkluU349CJqvi8ZNdRxDc= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Ursula Braun , Karsten Graul , "David S. Miller" Subject: [PATCH 5.3 105/140] net/smc: fix closing of fallback SMC sockets Date: Fri, 8 Nov 2019 19:50:33 +0100 Message-Id: <20191108174911.545592682@linuxfoundation.org> X-Mailer: git-send-email 2.24.0 In-Reply-To: <20191108174900.189064908@linuxfoundation.org> References: <20191108174900.189064908@linuxfoundation.org> User-Agent: quilt/0.66 MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org From: Ursula Braun [ Upstream commit f536dffc0b79738c3104af999318279dccbaa261 ] For SMC sockets forced to fallback to TCP, the file is propagated from the outer SMC to the internal TCP socket. When closing the SMC socket, the internal TCP socket file pointer must be restored to the original NULL value, otherwise memory leaks may show up (found with CONFIG_DEBUG_KMEMLEAK). The internal TCP socket is released in smc_clcsock_release(), which calls __sock_release() function in net/socket.c. This calls the needed iput(SOCK_INODE(sock)) only, if the file pointer has been reset to the original NULL-value. Fixes: 07603b230895 ("net/smc: propagate file from SMC to TCP socket") Signed-off-by: Ursula Braun Signed-off-by: Karsten Graul Signed-off-by: David S. Miller Signed-off-by: Greg Kroah-Hartman --- net/smc/af_smc.c | 7 +++++++ 1 file changed, 7 insertions(+) --- a/net/smc/af_smc.c +++ b/net/smc/af_smc.c @@ -123,6 +123,12 @@ struct proto smc_proto6 = { }; EXPORT_SYMBOL_GPL(smc_proto6); +static void smc_restore_fallback_changes(struct smc_sock *smc) +{ + smc->clcsock->file->private_data = smc->sk.sk_socket; + smc->clcsock->file = NULL; +} + static int __smc_release(struct smc_sock *smc) { struct sock *sk = &smc->sk; @@ -141,6 +147,7 @@ static int __smc_release(struct smc_sock } sk->sk_state = SMC_CLOSED; sk->sk_state_change(sk); + smc_restore_fallback_changes(smc); } sk->sk_prot->unhash(sk);