Received: by 2002:a25:1985:0:0:0:0:0 with SMTP id 127csp4461807ybz; Tue, 28 Apr 2020 11:41:41 -0700 (PDT) X-Google-Smtp-Source: APiQypKzHCr+qKb3fBkw3xgeG0ogaaaF+4UNbgpc6w+u/+ybM65wY6CIOuptsueQZVahPy1Y0kCB X-Received: by 2002:a17:906:548:: with SMTP id k8mr25284470eja.259.1588099301398; Tue, 28 Apr 2020 11:41:41 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1588099301; cv=none; d=google.com; s=arc-20160816; b=WdrgmR2WojkzjrK3LHJse8q2B9Oc/3ODVmgVwUryz3aE24a96+Td8QPSXU6IEmIEyg we4Ecn1gBHcIuAa5xlH7UBKyrpRp7PdZomRGd7s55e8uQCl2P34gvFM9IX6Wahyl/OpT kf2MyVHlbfcOzvURofyBNXHZX1R5/f3X9TdQAA4+DkRWWDFSXFOcCyT+wUFRGroH3tzE Fp7vY8K8+xnmz36Wg8sSX8msLsnbz/ggVVAy6EmesTtOPOZghT4ibjH2UzKKVhPII5bx SXN8wupblNMZttRSvYoc5OfbaJoG/BZWmatvMDwO7RF+whXRotALmY3Iaa2WtmXSGXQO 6pbw== 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=yZOTVxNQdI5d7RtJy8cKulPyAfXfnnLGMgdNyT2NBqG9OKob2N0CrRri/Id/YdtL1H xoC6ceeR3089ucao1DPOEVi8p/+feNTe1w8MJUppT4VEizavxqPx9eIG6VU4urVSWaHq 6qipwPeXAR7aDrQx5EizERjPW14MA3eS5fupk2zw0LJmZekaxCO6H8cs7VQ730ZFJz3r Vs4nogLk7SxEQjwwAaH9xDL39FuNW4T8Xs7tEKaLTT+K9nxKqIImOo0EGyZH3VI04u79 T8HmtVmFgo/Jf93qbtJMcC1d8F/SISTEW3Hz8WNju1RE2IRF5H7k8MsGEZEfry7yOpdx C47g== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=cqcFlhog; 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 z1si2166811edp.481.2020.04.28.11.41.17; Tue, 28 Apr 2020 11:41:41 -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=cqcFlhog; 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 S1730375AbgD1SjS (ORCPT + 99 others); Tue, 28 Apr 2020 14:39:18 -0400 Received: from mail.kernel.org ([198.145.29.99]:57970 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1730717AbgD1SjL (ORCPT ); Tue, 28 Apr 2020 14:39:11 -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 6C6D020575; Tue, 28 Apr 2020 18:39:10 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1588099150; bh=/n+aw/AIgsVNLvpZZefwZf1O71uQadggFN+UnXZb02c=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=cqcFlhogccwOq3ax0kRWF6FB05j+a9fnRjKptn4hn/Ya6+zi14IvPe+UkjkkzwEWi BD6YWlm3uKkjHrX7lmT9g83Wu0QfpbuIXQryABe1UJNUbaiVH7yaHgraql9v1mJWY8 obhp5+D7nJJg1Muk67ZOAgEPu3iMKw7+EEX9Q/OI= 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.4 062/168] mlxsw: Fix some IS_ERR() vs NULL bugs Date: Tue, 28 Apr 2020 20:23:56 +0200 Message-Id: <20200428182239.779341135@linuxfoundation.org> X-Mailer: git-send-email 2.26.2 In-Reply-To: <20200428182231.704304409@linuxfoundation.org> References: <20200428182231.704304409@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);