Return-Path: Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1751097AbdGGEgH (ORCPT ); Fri, 7 Jul 2017 00:36:07 -0400 Received: from gateway31.websitewelcome.com ([192.185.144.28]:36869 "EHLO gateway31.websitewelcome.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1750848AbdGGEgG (ORCPT ); Fri, 7 Jul 2017 00:36:06 -0400 Date: Thu, 06 Jul 2017 23:35:57 -0500 Message-ID: <20170706233558.Horde.ODusk8GBY3IYWs1gZsRKWv4@gator4166.hostgator.com> From: "Gustavo A. R. Silva" To: Peter Rosin Cc: Jonathan Cameron , Hartmut Knaack , Lars-Peter Clausen , Peter Meerwald-Stadler , linux-iio@vger.kernel.org, linux-kernel@vger.kernel.org Subject: Re: [PATCH] iio: multiplexer: add NULL check on devm_kzalloc() return value References: <20170706220851.GA26284@embeddedgus> <01d4a23f-489a-6d1c-50ef-a77207719eae@axentia.se> In-Reply-To: <01d4a23f-489a-6d1c-50ef-a77207719eae@axentia.se> User-Agent: Horde Application Framework 5 Content-Type: text/plain; charset=utf-8; format=flowed; DelSp=Yes MIME-Version: 1.0 Content-Disposition: inline X-AntiAbuse: This header was added to track abuse, please include it with any abuse report X-AntiAbuse: Primary Hostname - gator4166.hostgator.com X-AntiAbuse: Original Domain - vger.kernel.org X-AntiAbuse: Originator/Caller UID/GID - [47 12] / [47 12] X-AntiAbuse: Sender Address Domain - embeddedor.com X-BWhitelist: no X-Source-IP: 108.167.133.22 X-Exim-ID: 1dTKzm-000vZO-34 X-Source: X-Source-Args: X-Source-Dir: X-Source-Sender: gator4166.hostgator.com [108.167.133.22]:42093 X-Source-Auth: garsilva@embeddedor.com X-Email-Count: 1 X-Source-Cap: Z3V6aWRpbmU7Z3V6aWRpbmU7Z2F0b3I0MTY2Lmhvc3RnYXRvci5jb20= Sender: linux-kernel-owner@vger.kernel.org List-ID: X-Mailing-List: linux-kernel@vger.kernel.org Content-Length: 1663 Lines: 70 Hi Peter, Quoting Peter Rosin : > On 2017-07-07 00:08, Gustavo A. R. Silva wrote: >> Check return value from call to devm_kzalloc() >> in order to prevent a NULL pointer dereference. > > Right, thanks for finding that one! There's another one inside the > for loop that is just starting in the context of this patch. Care > to fix checking the return value of that devm_kmemdup as well? > Sure, I'll send a new patch shortly. > And someone should perhaps teach Coccinelle about devm_kmemdup... > Good catch, I just implemented that script. >> This issue was detected using Coccinelle and the following semantic patch: >> >> @@ >> expression x; >> identifier fld; >> @@ >> >> * x = devm_kzalloc(...); >> ... when != x == NULL >> x->fld >> >> > > One of these blank lines should perhaps be a "Fixes:" tag? > mmm, I don't get this... > Cheers, > peda > >> Signed-off-by: Gustavo A. R. Silva >> --- >> drivers/iio/multiplexer/iio-mux.c | 3 +++ >> 1 file changed, 3 insertions(+) >> >> diff --git a/drivers/iio/multiplexer/iio-mux.c >> b/drivers/iio/multiplexer/iio-mux.c >> index 37ba007..a8d672b 100644 >> --- a/drivers/iio/multiplexer/iio-mux.c >> +++ b/drivers/iio/multiplexer/iio-mux.c >> @@ -285,6 +285,9 @@ static int mux_configure_channel(struct device >> *dev, struct mux *mux, >> child->ext_info_cache = devm_kzalloc(dev, >> sizeof(*child->ext_info_cache) * >> num_ext_info, GFP_KERNEL); >> + if (!child->ext_info_cache) >> + return -ENOMEM; >> + >> for (i = 0; i < num_ext_info; ++i) { >> child->ext_info_cache[i].size = -1; >> >> Thanks! -- Gustavo A. R. Silva