Received: by 2002:a25:868d:0:0:0:0:0 with SMTP id z13csp438080ybk; Wed, 13 May 2020 04:13:34 -0700 (PDT) X-Google-Smtp-Source: APiQypJufc/6vH27cVBuVvm4e1rM5cHMeJFEC5lb5w1gT7HH3FnO46kkA/lZngQTRWBv8RPAo9iJ X-Received: by 2002:a17:906:78c:: with SMTP id l12mr20201519ejc.189.1589368414428; Wed, 13 May 2020 04:13:34 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1589368414; cv=none; d=google.com; s=arc-20160816; b=aIcGrNAj3tJoICzD4CR5urqPnjpD39B/cevY2Bu4KJnX6RmDTmIZln0bkBzl3BfvjG 9QTGk6LRURfm+RYaY3KAjRBX8mZ7v5jFvEOXtOPwBe0g3oUPj3WO40dDbw07+eGyYmTI KF776U065lAuELXT+3FfZFF/x2GUo9kaHWa96y92bDacqlX9UH3rbM6W0N7wm2a4Uhb+ iXbxmN2jI8IYFwKsXSpWuX1SuYuzdItjVsBO6on9ynbeimmfdzNQiwH0j4qkNQYoc8RV 0gQGjt91ZqPxph/ZxUmKt3EYv2A/YpMMQSjcAPP/xAAAs/UD8Fsv87/oG13VrwmMjWi1 558Q== 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=re7NleqvevU5/re2kKrdZ8rYRPsbKM6P59O8SaTOOFc=; b=Ra/9dkUg1g5tAzWQ7Y1xIQv1Xoa8pscv+kfnbiSSxivWjd+xDHnI8VcYDlcM6YaBFL 02j6h5uTR7UP6ibsMy1Yu4gU+PtdLj9bO1lesEY4lC3ECBraGN1pKZ1Z9k9Oxw+offLG iqy3D5Fls0kz7kuIy0TovICOZxg7xmWSHUb1fbl5o0bp0wA5vA40XHsD/Loun7RGeEP/ sanYprymZbDC0aJIkvRcy4+IeVuia1IV7t4zJpj3YAymIL7jhGuoBzafVjEsRLiwm6Vp hBScEQB64ZFAD5ywIg45hpZrmkpGofSk3pSTUZ8vRpLoyad3UBpxBhlhn5ncGI68dvBm qeyQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=m8NlDofh; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id j93si6311406edd.447.2020.05.13.04.13.11; Wed, 13 May 2020 04:13:34 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) client-ip=23.128.96.18; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=m8NlDofh; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 23.128.96.18 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1732571AbgEMJqH (ORCPT + 99 others); Wed, 13 May 2020 05:46:07 -0400 Received: from mail.kernel.org ([198.145.29.99]:43306 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726492AbgEMJqF (ORCPT ); Wed, 13 May 2020 05:46:05 -0400 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 6691720753; Wed, 13 May 2020 09:46:03 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1589363163; bh=0QOzYPBYJcT+FoFtXF0SFF7Km3E2Ug+EeUE4jgl4fLw=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=m8NlDofhX9a4NDlaXYknC2a51JNMtX/lqXG5xr2BeIZXPgWlt3ukk0WKoMOc/EEhH pQx6sroy4IGTLnQQuOY3ylZxzuOY+4F4Hnfl1UhZNyyN3Cv8XhaDeuwc66E5LcnEA2 LC2fsBNWRfIqaNUjm+lhwdxifVgTK+PpMBtzOU0I= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Jon Maloy , Ying Xue , Tuong Lien , "David S. Miller" Subject: [PATCH 4.19 12/48] tipc: fix partial topology connection closure Date: Wed, 13 May 2020 11:44:38 +0200 Message-Id: <20200513094354.704448534@linuxfoundation.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200513094351.100352960@linuxfoundation.org> References: <20200513094351.100352960@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: Tuong Lien [ Upstream commit 980d69276f3048af43a045be2925dacfb898a7be ] When an application connects to the TIPC topology server and subscribes to some services, a new connection is created along with some objects - 'tipc_subscription' to store related data correspondingly... However, there is one omission in the connection handling that when the connection or application is orderly shutdown (e.g. via SIGQUIT, etc.), the connection is not closed in kernel, the 'tipc_subscription' objects are not freed too. This results in: - The maximum number of subscriptions (65535) will be reached soon, new subscriptions will be rejected; - TIPC module cannot be removed (unless the objects are somehow forced to release first); The commit fixes the issue by closing the connection if the 'recvmsg()' returns '0' i.e. when the peer is shutdown gracefully. It also includes the other unexpected cases. Acked-by: Jon Maloy Acked-by: Ying Xue Signed-off-by: Tuong Lien Signed-off-by: David S. Miller Signed-off-by: Greg Kroah-Hartman --- net/tipc/topsrv.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) --- a/net/tipc/topsrv.c +++ b/net/tipc/topsrv.c @@ -409,10 +409,11 @@ static int tipc_conn_rcv_from_sock(struc read_lock_bh(&sk->sk_callback_lock); ret = tipc_conn_rcv_sub(srv, con, &s); read_unlock_bh(&sk->sk_callback_lock); + if (!ret) + return 0; } - if (ret < 0) - tipc_conn_close(con); + tipc_conn_close(con); return ret; }