Received: by 2002:a05:6a10:206:0:0:0:0 with SMTP id 6csp3837379pxj; Mon, 7 Jun 2021 23:10:26 -0700 (PDT) X-Google-Smtp-Source: ABdhPJzKyZaLW3AxMr+528UNkLcJktM18APj/6evhe5XlmOz4ZjqwL1Z9P0xQBi3oF1cSzF/6kZ9 X-Received: by 2002:a50:d68a:: with SMTP id r10mr24143151edi.90.1623132626739; Mon, 07 Jun 2021 23:10:26 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1623132626; cv=none; d=google.com; s=arc-20160816; b=wsFdvQfPb521y4T8OMhOwsEuNCG1zTKNHx52Y9S6TbLg7g7aEGiYR4A0od5h/d4yhn I+Bzw5ANkhPm02bx+8+IaP/PgR1aYnGwMnouoHKctahhN0PhWGqglOLjr/YGgco5tplO foaoumegO/ZDBiCi1Hxd/j6n1cv35JEKEji7jCgdGHu1h8t/Kjfnbk8NP7m036tK8Q1X hV59o0Q0z966UdOvc+zqsHLeK/JE6nsvjtgFxNbgQ29PIOLD9Vm8XD1oVjAkoXLaD/hI K2bYW1V9ALpBz17CzvFQRHHSZ9sr4cyJuQgOkK5YxFqkyd4lBI0Kd/cLrYDgBYtNVolP TThw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:in-reply-to:content-disposition:mime-version :references:message-id:subject:cc:to:from:date:dkim-signature; bh=07Rc6/ZBH5Ly0kuSbxxJngi/b+gz9Ht9BAXTpk7KAXY=; b=h9xbLbp+en0+Qt/hdcVBrKCVYu3sjs1XBQtX1vS2Uz3lr4Z3Kb4mGLJXOAzr1vlnJB 91d5e6RoXv5Z+ms/zHWoGUz85oeO7Jrcydc6Ghndx0rbiFUY1WBFZPAeyv0FL+zwRw7x 9tGWDgRjmIr4BbduVM+Ju1G4qDcqgl6Syn/SOjAXKkvf0Gu38SwJ1g1um7tiTfIQ7NtQ 7Cmq28pAewOHcSYatA/0yrD14TLryWohqDz/fHVWjSxku/VT7R3JMkPk344oEG/gAv2u rdTOk0DHH8wBosT1/Ljph9QUoQv2vB6AGzqgwry1b66YuleiM2k/6KyJcuDopg4EZrTN fxWA== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=k20201202 header.b=SVAjoRhb; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id eb13si16158810edb.95.2021.06.07.23.10.03; Mon, 07 Jun 2021 23:10:26 -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=k20201202 header.b=SVAjoRhb; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S230254AbhFHGK0 (ORCPT + 99 others); Tue, 8 Jun 2021 02:10:26 -0400 Received: from mail.kernel.org ([198.145.29.99]:58146 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229655AbhFHGKY (ORCPT ); Tue, 8 Jun 2021 02:10:24 -0400 Received: by mail.kernel.org (Postfix) with ESMTPSA id A334461249; Tue, 8 Jun 2021 06:08:30 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=k20201202; t=1623132511; bh=V7y3KKYMOPORYcYQS09ka3uXcIRK/hHqR2xD33b5Acc=; h=Date:From:To:Cc:Subject:References:In-Reply-To:From; b=SVAjoRhbLddAc6mKbdByXnAfi3nJqv+lQ++D3LQOFOUOe9w7xGFeNfAtiuND1CrlU meO43xVzjIcjmHJWy8Vzx4Z4AxfPe46HlMRDwmNTMbHWj9iTjyzdlWfDViCCIksX/H e8xBKxP3N27vuKKyizTX5z+w5x+TRB8PLiISBXvalDqFt2DaXYJSR8LMM/XJPGDA5J 13iEVnZLCxaa18/MUlWkIiVQi4t0FvzCJI4RouTRfumE8unX0lHmP+XrIXC1f9s0ho TXqKUvtUdjJy4nEMVBh/2uyxEl3r95mIqTWF69R8u5fws5AVQ9mTeqSynyxQcJyQN5 +b59VY81wHmyg== Date: Tue, 8 Jun 2021 09:08:26 +0300 From: Leon Romanovsky To: Zheng Yongjun Cc: davem@davemloft.net, yoshfuji@linux-ipv6.org, dsahern@kernel.org, kuba@kernel.org, netdev@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH v3] ping: Check return value of function 'ping_queue_rcv_skb' Message-ID: References: <20210608020853.3091939-1-zhengyongjun3@huawei.com> MIME-Version: 1.0 Content-Type: text/plain; charset=us-ascii Content-Disposition: inline In-Reply-To: <20210608020853.3091939-1-zhengyongjun3@huawei.com> Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Tue, Jun 08, 2021 at 10:08:53AM +0800, Zheng Yongjun wrote: > Function 'ping_queue_rcv_skb' not always return success, which will > also return fail. If not check the wrong return value of it, lead > to function `ping_rcv` return success. > > Signed-off-by: Zheng Yongjun > --- > v2: > - use rc as return value to make code look cleaner > v3: > - delete unnecessary braces {} > net/ipv4/ping.c | 8 ++++---- > 1 file changed, 4 insertions(+), 4 deletions(-) > > diff --git a/net/ipv4/ping.c b/net/ipv4/ping.c > index 1c9f71a37258..af9da2f7dc85 100644 > --- a/net/ipv4/ping.c > +++ b/net/ipv4/ping.c > @@ -963,19 +963,19 @@ bool ping_rcv(struct sk_buff *skb) > /* Push ICMP header back */ > skb_push(skb, skb->data - (u8 *)icmph); > > + bool rc = false; Declaration of new variables in the middle of function is C++, while the kernel is written in C. Please put variable declaration at the beginning of function. Thanks > sk = ping_lookup(net, skb, ntohs(icmph->un.echo.id)); > if (sk) { > struct sk_buff *skb2 = skb_clone(skb, GFP_ATOMIC); > > pr_debug("rcv on socket %p\n", sk); > - if (skb2) > - ping_queue_rcv_skb(sk, skb2); > + if (skb2 && !ping_queue_rcv_skb(sk, skb2)) > + rc = true; > sock_put(sk); > - return true; > } > pr_debug("no socket, dropping\n"); > > - return false; > + return rc; > } > EXPORT_SYMBOL_GPL(ping_rcv); > > -- > 2.25.1 >