Received: by 2002:ac0:950c:0:0:0:0:0 with SMTP id f12csp2297979imc; Tue, 12 Mar 2019 10:51:58 -0700 (PDT) X-Google-Smtp-Source: APXvYqxCPc1Nl/t5N2kiPi5dYjIac2s/XffaluhHGK28Oz9iJ0DEk2QN0sG7Y24WE+Xgq2VTBKJ5 X-Received: by 2002:a17:902:9001:: with SMTP id a1mr40672337plp.96.1552413118144; Tue, 12 Mar 2019 10:51:58 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1552413118; cv=none; d=google.com; s=arc-20160816; b=f8mjwasfFqcOlVZ7kEd1KIY3RnjEer9uIpbw687Ykfy3+C7tUxd47bmZ3HIGXSi19J q3gojeGNzuSR4xiTCLiE2B0+6IdUWlr9ikktL2yPUg7osdU/wD3DbspuGaE8mUFLJfgD Q34hYF1UekSXC6BD/fMJxmApQjP9lYL/EN2a/NsrWr+Dx03pM6est4mqEW2zJrakP4ck stKxmtMJueq4DgfTWOds/mM5CfMFZovkQsbci45WopsXmVSgcEA3CgiS9KpgfuDv+duL DJjcZu/iAt70YdUEkzEUpPV3juusRQCk8PfbJTYWmGE+tasCk9wBwFV+FFU8+tkMp3c9 FVMQ== 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=gBvQ/CYKIgx07B8eK4hJZjs6l6UXj+LcAUc3kt7pKFM=; b=BkSHjYBrysn3gCh5OsSFmZzo+bI5Z9ER9eNYekSnrVkHQ6oiOF8rexVfkO4i40SAIc zNjSA5mNDL4YfibJorQC/u/U9m9VLip9ctZySY6oGjUePyjfRccI73XVVzgx0Q5YNp0d VRXqu1McWK3hsA/wYNt+xJfY/8T4j5V7VuXXX5JFXAfoz9yOPdU6buOTLIP+Bw31mrry BteF7Dc8mthGgkB7rGi9mpRWdg18KE/ynkqiEhcDQE4iRTWOMJu0nqNtZ5IJ3uBryONP hiig79gDbhqL8b88F5pD2VJF8GQFfa1gj52NAsi+BoGNlCDss1aPFV1p5rDZ3IqEcoaS acGQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=WqfYKFRC; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id h9si2428268pfj.70.2019.03.12.10.51.42; Tue, 12 Mar 2019 10:51:58 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@kernel.org header.s=default header.b=WqfYKFRC; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1728507AbfCLROu (ORCPT + 99 others); Tue, 12 Mar 2019 13:14:50 -0400 Received: from mail.kernel.org ([198.145.29.99]:51958 "EHLO mail.kernel.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1728194AbfCLROB (ORCPT ); Tue, 12 Mar 2019 13:14:01 -0400 Received: from localhost (unknown [104.133.8.98]) (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 AD5E22173C; Tue, 12 Mar 2019 17:14:00 +0000 (UTC) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=kernel.org; s=default; t=1552410840; bh=M4nwY7OdKHA2J8gnBptO46wjmPcQeljnjGyIqJAladI=; h=From:To:Cc:Subject:Date:In-Reply-To:References:From; b=WqfYKFRCYJPKvZqW0WdkilxKJkMzbbkM94DjdGSzL3siUYAQIjFwIjz7E6U+b26sP 4DT2v2ZqzCVZfQ9/fs0l9zlHkoA330XV4brC44JP6ZMddV92AM1q8K02yoDf5gWj92 MEdfuobGjo2YcAYGYWj1pKqagYpBC1AlS6P9sMUY= From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Dan Carpenter , Tero Kristo , Stephen Boyd , Sasha Levin Subject: [PATCH 4.19 013/149] clk: ti: Fix error handling in ti_clk_parse_divider_data() Date: Tue, 12 Mar 2019 10:07:11 -0700 Message-Id: <20190312170350.679677128@linuxfoundation.org> X-Mailer: git-send-email 2.21.0 In-Reply-To: <20190312170349.421581206@linuxfoundation.org> References: <20190312170349.421581206@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review X-Patchwork-Hint: ignore 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 4.19-stable review patch. If anyone has any objections, please let me know. ------------------ [ Upstream commit 303aef8b84272d73999a3207dd05bbe10ed89dc5 ] The ti_clk_parse_divider_data() function is only called from _get_div_table_from_setup(). That function doesn't look at the return value but instead looks at the "*table" pointer. In this case, if the kcalloc() fails then *table is NULL (which means success). It should instead be an error pointer. The ti_clk_parse_divider_data() function has two callers. One checks for errors and the other doesn't. I have fixed it so now both handle errors. Fixes: 4f6be5655dc9 ("clk: ti: divider: add driver internal API for parsing divider data") Signed-off-by: Dan Carpenter Acked-by: Tero Kristo Signed-off-by: Stephen Boyd Signed-off-by: Sasha Levin --- drivers/clk/ti/divider.c | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) diff --git a/drivers/clk/ti/divider.c b/drivers/clk/ti/divider.c index ccfb4d9a152a..079f0beda8b6 100644 --- a/drivers/clk/ti/divider.c +++ b/drivers/clk/ti/divider.c @@ -367,8 +367,10 @@ int ti_clk_parse_divider_data(int *div_table, int num_dividers, int max_div, num_dividers = i; tmp = kcalloc(valid_div + 1, sizeof(*tmp), GFP_KERNEL); - if (!tmp) + if (!tmp) { + *table = ERR_PTR(-ENOMEM); return -ENOMEM; + } valid_div = 0; *width = 0; @@ -403,6 +405,7 @@ struct clk_hw *ti_clk_build_component_div(struct ti_clk_divider *setup) { struct clk_omap_divider *div; struct clk_omap_reg *reg; + int ret; if (!setup) return NULL; @@ -422,6 +425,12 @@ struct clk_hw *ti_clk_build_component_div(struct ti_clk_divider *setup) div->flags |= CLK_DIVIDER_POWER_OF_TWO; div->table = _get_div_table_from_setup(setup, &div->width); + if (IS_ERR(div->table)) { + ret = PTR_ERR(div->table); + kfree(div); + return ERR_PTR(ret); + } + div->shift = setup->bit_shift; div->latch = -EINVAL; -- 2.19.1