Received: by 2002:a25:868d:0:0:0:0:0 with SMTP id z13csp395265ybk; Wed, 13 May 2020 03:04:38 -0700 (PDT) X-Google-Smtp-Source: APiQypKDozYVoCsU9sVu1xsA5Z4lWZsUDyRCNVv5QW0aB4ytNHuGBB0X+rfDlmdlfHpPCub+7F/o X-Received: by 2002:a17:906:8611:: with SMTP id o17mr21203827ejx.221.1589364278328; Wed, 13 May 2020 03:04:38 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1589364278; cv=none; d=google.com; s=arc-20160816; b=NW+z49gBXiuItBNKgOpgd7ckgOeKxu8GVRkTzzZzRdw+17TYm4cKiN/wFpjP1ZtNni Cvd1yVWRIePxMUuOxovcga4/bcqkGTIbj74WcgrP/TcRq4MKnKsb9/NlV/ic+q/ucO+x ILZuibTyJJC+1djl9kDt1YF3AUmxOPVrBuE4eq4AxuY/pvcAmeRurWrQ4hXNyqNHan79 2j0tRS+zIqKKAn0dIsI64XimwuzXyI9M//VefLwSEEuWFGi59isUjA2+2EBX6lo+6Lln ATU90u0hiC6rjIV1Rlk9dgis3ZEfdvdeq2qSzgqJb9JKD8DUcZGGmcUEljyOeEzf8c+B ZXAw== 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=VUzZHmf/TmJ4Sql/LeWUMem9jbBggCQgQQUKg9pGxh0=; b=npEtC1P67+Mzhckp7HFl84/SHbQRjy/3cSGuNpnSghqVmoSnWCe+jUbOUES67Fk+Xd bg26Yw05lhM5WtF28/ycvvgYp5ojMiImx7IwPkV66vc/UTK9pK53YAyn6Ei/RzcZJiZ9 ok3SDhKMGqrPxHLpcdCmA85F5g6D8hH7dqAuud5zCm4Iq2KvY8OPspOd/1ZnDG3yUsTa dMUA7vAg0UZijoPwk+7JblPo+KxvI84xa/RQ5bDJAE4rrjLOjt+7LzgEyC3B2OCJIyVS QU4fNTzlo2DvEp2ztuIDU2a/FdCW3C2YhP87sH9rZ7+g/1jGqmQdx74IhZSYs33gWKyX Aagw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=ihePZmXs; 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 f14si4488031ejr.30.2020.05.13.03.04.13; Wed, 13 May 2020 03:04:38 -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=ihePZmXs; 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 S2387865AbgEMJw4 (ORCPT + 99 others); Wed, 13 May 2020 05:52:56 -0400 Received: from mail.kernel.org ([198.145.29.99]:54534 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S2387853AbgEMJwx (ORCPT ); Wed, 13 May 2020 05:52:53 -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 2D49C20753; Wed, 13 May 2020 09:52:52 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1589363572; bh=6Nj0ivymC0ECNsWFCc3YPYlbmxZtWC1YnpOr92BuU0g=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=ihePZmXs0ox3WdiS50DfNw10BYQ7X0kpAdSUG0sWK1XCEIWL7jsuysR7qqaJOOH03 I9U9TU8p598K1XsUymybBXgcDif6Hm6kRdqnwjq7ICO3Qht2gZWkOB1KejCBq2w705 ZerkcJMbjwIHlTIn55DPGCCd1Ij24FPXdOZcUPS8= 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 5.6 039/118] tipc: fix partial topology connection closure Date: Wed, 13 May 2020 11:44:18 +0200 Message-Id: <20200513094420.799732773@linuxfoundation.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200513094417.618129545@linuxfoundation.org> References: <20200513094417.618129545@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 @@ -402,10 +402,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; }