From mboxrd@z Thu Jan 1 00:00:00 1970 From: Marcelo Ricardo Leitner Subject: Re: [PATCH net-next] sctp: reset ret in again path in sctp_for_each_transport Date: Tue, 23 Jan 2018 09:19:00 -0200 Message-ID: <20180123111900.GA14124@localhost.localdomain> References: <07dcfcd8098979f6693426fd562867ffa67dd65b.1516702945.git.lucien.xin@gmail.com> Mime-Version: 1.0 Content-Type: text/plain; charset=us-ascii Cc: network dev , linux-sctp@vger.kernel.org, Neil Horman , davem@davemloft.net To: Xin Long Return-path: Received: from mail-qt0-f194.google.com ([209.85.216.194]:37667 "EHLO mail-qt0-f194.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1751086AbeAWLTE (ORCPT ); Tue, 23 Jan 2018 06:19:04 -0500 Content-Disposition: inline In-Reply-To: <07dcfcd8098979f6693426fd562867ffa67dd65b.1516702945.git.lucien.xin@gmail.com> Sender: netdev-owner@vger.kernel.org List-ID: On Tue, Jan 23, 2018 at 06:22:25PM +0800, Xin Long wrote: > Commit 97a6ec4ac021 ("rhashtable: Change rhashtable_walk_start to > return void") only initialized ret for the first time, when going > to again path, the next tsp could be NULL. Without resetting ret, > cb_done would be called with tsp as NULL. > > A kernel crash was caused by this when running sctpdiag testcase > in sctp-tests. > > Note that this issue doesn't affect net.git yet. > > Fixes: 97a6ec4ac021 ("rhashtable: Change rhashtable_walk_start to return void") > Signed-off-by: Xin Long Acked-by: Marcelo Ricardo Leitner > --- > net/sctp/socket.c | 3 ++- > 1 file changed, 2 insertions(+), 1 deletion(-) > > diff --git a/net/sctp/socket.c b/net/sctp/socket.c > index 7ff444e..a40fa53 100644 > --- a/net/sctp/socket.c > +++ b/net/sctp/socket.c > @@ -4860,9 +4860,10 @@ int sctp_for_each_transport(int (*cb)(struct sctp_transport *, void *), > struct net *net, int *pos, void *p) { > struct rhashtable_iter hti; > struct sctp_transport *tsp; > - int ret = 0; > + int ret; > > again: > + ret = 0; > sctp_transport_walk_start(&hti); > > tsp = sctp_transport_get_idx(net, &hti, *pos + 1); > -- > 2.1.0 > > -- > To unsubscribe from this list: send the line "unsubscribe linux-sctp" in > the body of a message to majordomo@vger.kernel.org > More majordomo info at http://vger.kernel.org/majordomo-info.html >