Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp4480247ybz; Tue, 28 Apr 2020 12:01:57 -0700 (PDT) X-Google-Smtp-Source: APiQypIVPJkAXADf33T3Un/BcYZjVrjsSAlYKgHL6s+H4zuVpVEYFxjcUinphZybn7ieY237uMMh X-Received: by 2002:a17:907:a89:: with SMTP id by9mr25163470ejc.289.1588100517710; Tue, 28 Apr 2020 12:01:57 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1588100517; cv=none; d=google.com; s=arc-20160816; b=FF+SsdjNO/u9KPJswc671EiokcbIcla6kxrrrH8gkCljH8+7fsUPFzv9PF7ykMkD+m RorbIEuc9G9B/ar6xbds2BMgzkscucvdfD/LTlDKB6NLO0TqsNXAu4Jz2ujY+n5w1osg YA5hoyXNMP0w3nKk7TQIXRPZ0+dBb36kCEhLMQNSrz5b7IDUVrF9jIjDdY8Zqi9KCy+X Hg6oUnjJ8jLKFbiHTe17lWzrB6CEHsPYhWNwh6F59Hsxr6wt5zqnOglCpu4t65gmNPj/ KVOXL44v96wZBkXdrPvQqfxMBksYBCBBjRsueiZhf9/p90SfjyNAhNx5fTiOoaxAYuNu e3xQ== 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=1ORN9/J6x+sf8TYQ+c7EDOAlW5vLLiCXg6Rly61zJnQ=; b=O2Y2WBsmZSC7x2g9ek4E2H4tg27GpnaiJ1lKtXsqGELhTT1fXrMZxHP3IQzR+rhmBm IspmxRWmGQppnICJkWyuOaqiwRLTC3oY9JzpyzJkAOUVUX1y8hoNNL1HM9DTGG6jEDOL RnKgrDBc1SEg+npQwK+vk7IJuwkre2Me0KOTf+JxB/vwm/SjDyzDpSJzvS4NDWbzgAM8 hCFHmrA03bl5MlWuUUtYJFtB6Lkn6rUgb8YCnQ3XYg94jPGN22kbLeEy+rxQNB2tOemk hFdZXYWuXlKtcEFXPc7ROhIQnj+DDrArjQ8xMMNAyR6Hwy6DPWfDcFDZkLgVzbBdRdOK 7VWQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=I5H8yvU3; 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 w14si1949168eds.489.2020.04.28.12.01.34; Tue, 28 Apr 2020 12:01:57 -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=I5H8yvU3; 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 S1728939AbgD1TAN (ORCPT + 99 others); Tue, 28 Apr 2020 15:00:13 -0400 Received: from mail.kernel.org ([198.145.29.99]:40038 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729053AbgD1S1o (ORCPT ); Tue, 28 Apr 2020 14:27:44 -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 41F61208E0; Tue, 28 Apr 2020 18:27:43 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1588098463; bh=/n+aw/AIgsVNLvpZZefwZf1O71uQadggFN+UnXZb02c=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=I5H8yvU3XLN5ALVZpbV3oljUs43uqSnzTkOuZtlLDcaqFL+SYzlim2nbCCjPvapUg cT3D2Cqv/lcPNXJ71kfOyzPMk21qnqRdE2gCpGvybhTUvUpdHjwPZf90HobF3dZDPV brq/SSTr3DHXa/NkqqKUHFrstMU1l8Eoa8wlwW3k= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Dan Carpenter , Ido Schimmel , "David S. Miller" Subject: [PATCH 5.6 051/167] mlxsw: Fix some IS_ERR() vs NULL bugs Date: Tue, 28 Apr 2020 20:23:47 +0200 Message-Id: <20200428182231.481512904@linuxfoundation.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200428182225.451225420@linuxfoundation.org> References: <20200428182225.451225420@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: Dan Carpenter [ Upstream commit c391eb8366ae052d571bb2841f1ccb4d39f3ceb8 ] The mlxsw_sp_acl_rulei_create() function is supposed to return an error pointer from mlxsw_afa_block_create(). The problem is that these functions both return NULL instead of error pointers. Half the callers expect NULL and half expect error pointers so it could lead to a NULL dereference on failure. This patch changes both of them to return error pointers and changes all the callers which checked for NULL to check for IS_ERR() instead. Fixes: 4cda7d8d7098 ("mlxsw: core: Introduce flexible actions support") Signed-off-by: Dan Carpenter Reviewed-by: Ido Schimmel Signed-off-by: David S. Miller Signed-off-by: Greg Kroah-Hartman --- drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c | 4 ++-- drivers/net/ethernet/mellanox/mlxsw/spectrum2_acl_tcam.c | 4 ++-- drivers/net/ethernet/mellanox/mlxsw/spectrum_acl.c | 2 +- drivers/net/ethernet/mellanox/mlxsw/spectrum_mr_tcam.c | 4 ++-- 4 files changed, 7 insertions(+), 7 deletions(-) --- a/drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c +++ b/drivers/net/ethernet/mellanox/mlxsw/core_acl_flex_actions.c @@ -316,7 +316,7 @@ struct mlxsw_afa_block *mlxsw_afa_block_ block = kzalloc(sizeof(*block), GFP_KERNEL); if (!block) - return NULL; + return ERR_PTR(-ENOMEM); INIT_LIST_HEAD(&block->resource_list); block->afa = mlxsw_afa; @@ -344,7 +344,7 @@ err_second_set_create: mlxsw_afa_set_destroy(block->first_set); err_first_set_create: kfree(block); - return NULL; + return ERR_PTR(-ENOMEM); } EXPORT_SYMBOL(mlxsw_afa_block_create); --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum2_acl_tcam.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum2_acl_tcam.c @@ -88,8 +88,8 @@ static int mlxsw_sp2_acl_tcam_init(struc * to be written using PEFA register to all indexes for all regions. */ afa_block = mlxsw_afa_block_create(mlxsw_sp->afa); - if (!afa_block) { - err = -ENOMEM; + if (IS_ERR(afa_block)) { + err = PTR_ERR(afa_block); goto err_afa_block; } err = mlxsw_afa_block_continue(afa_block); --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_acl.c @@ -444,7 +444,7 @@ mlxsw_sp_acl_rulei_create(struct mlxsw_s rulei = kzalloc(sizeof(*rulei), GFP_KERNEL); if (!rulei) - return NULL; + return ERR_PTR(-ENOMEM); if (afa_block) { rulei->act_block = afa_block; --- a/drivers/net/ethernet/mellanox/mlxsw/spectrum_mr_tcam.c +++ b/drivers/net/ethernet/mellanox/mlxsw/spectrum_mr_tcam.c @@ -199,8 +199,8 @@ mlxsw_sp_mr_tcam_afa_block_create(struct int err; afa_block = mlxsw_afa_block_create(mlxsw_sp->afa); - if (!afa_block) - return ERR_PTR(-ENOMEM); + if (IS_ERR(afa_block)) + return afa_block; err = mlxsw_afa_block_append_allocated_counter(afa_block, counter_index);