Received: by 10.213.65.68 with SMTP id h4csp210889imn; Fri, 23 Mar 2018 03:00:15 -0700 (PDT) X-Google-Smtp-Source: AG47ELuRDE9DNeYkEtYrl+3uOlHFaE/gsGAlKZHoKNbowsKv/64WEFaD66HiZ4dS+JDi/HlNuves X-Received: by 2002:a17:902:42e:: with SMTP id 43-v6mr10050303ple.186.1521799215269; Fri, 23 Mar 2018 03:00:15 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1521799215; cv=none; d=google.com; s=arc-20160816; b=f323+t1D3nSlNaFsxeHTFQiqwl3k2tOZAR2u4zWUuwP0MvgLsPrag24W0Ts6Ff3RGN p1IawGeoDydBYQNpPZlGGqiGviXp9v/hzk6SisP9h6H+5iSzttvb9cT1l9Ro5g7LZyGu N7O6NUiG5gyHK5hc5+KUmORFF49cYPpP0wA4/qI9VH5Hnw+kaVxKGlKGz8hJXRpnVevp 9U3QEtQsb45eLB+jQj5ipazbmpIgo4kv+kaLmtLlSnRXODPVIpuNjYzjaCjphiEf2W8J lhcmi6vNmKYUTur+QKixaRXT1hi15V3Jh3v+ZUneAZPu/ByGyubqwBrGEjmEyf34X+5b HbLg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:mime-version:user-agent:references :in-reply-to:message-id:date:subject:cc:to:from :arc-authentication-results; bh=aWrx5zDBoS4cssS6OvM/UhFEOaQO31kP/iD+nlM8vrY=; b=gOFOorXW3KQ7WD2hpRQeJBgIXfwV3AvDMm/uDgCD8sjQ+/BsqPkPIEKAFRhNAZOoGL SaRu7WybnsiQ5BmIjDUwxMO16RBap6ASHmI/AHyHRJXt5LohGvlQPssbw7PLHOALyo8y eKpDCNyNnLwKsvzJMQ4cPQZZCM9VWWi6P4v/y3LaInv50M68Vw3cHCMQcpztIegYSat8 1VUIgPuIqJSEpRLsA6QmmJc0tAjkrqBIhbTYiXqV9yKZmzTC/zV+vm0KE8RMfFw0T5+T C64FcPTndQ7XQHt2QeE7WR+4zw33qGTM3LNrB1obLzev9bAaEQvn25pcUgZ2GhhDVk0R 0tyA== ARC-Authentication-Results: i=1; mx.google.com; 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 31-v6si1967284pli.478.2018.03.23.03.00.00; Fri, 23 Mar 2018 03:00:15 -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; 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 S1753247AbeCWJ67 (ORCPT + 99 others); Fri, 23 Mar 2018 05:58:59 -0400 Received: from mail.linuxfoundation.org ([140.211.169.12]:35902 "EHLO mail.linuxfoundation.org" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1752446AbeCWJ64 (ORCPT ); Fri, 23 Mar 2018 05:58:56 -0400 Received: from localhost (LFbn-1-12247-202.w90-92.abo.wanadoo.fr [90.92.61.202]) by mail.linuxfoundation.org (Postfix) with ESMTPSA id AF87E1337; Fri, 23 Mar 2018 09:58:55 +0000 (UTC) From: Greg Kroah-Hartman To: linux-kernel@vger.kernel.org Cc: Greg Kroah-Hartman , stable@vger.kernel.org, Jerome Brunet , Michael Turquette , Sasha Levin Subject: [PATCH 4.15 55/84] clk: check ops pointer on clock register Date: Fri, 23 Mar 2018 10:54:09 +0100 Message-Id: <20180323095420.275785299@linuxfoundation.org> X-Mailer: git-send-email 2.16.2 In-Reply-To: <20180323095411.913234798@linuxfoundation.org> References: <20180323095411.913234798@linuxfoundation.org> User-Agent: quilt/0.65 X-stable: review MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org 4.15-stable review patch. If anyone has any objections, please let me know. ------------------ From: Jerome Brunet [ Upstream commit 29fd2a34ef8d863e48183bd473ba57c8d7839e25 ] Nothing really prevents a provider from (trying to) register a clock without providing the clock ops structure. We do check the individual fields before using them, but not the structure pointer itself. This may have the usual nasty consequences when the pointer is dereferenced, most likely when checking one the field during the initialization. This is fixed by returning an error on clock register if the ops pointer is NULL. Signed-off-by: Jerome Brunet Signed-off-by: Michael Turquette Link: lkml.kernel.org/r/20171219083329.24746-1-jbrunet@baylibre.com Signed-off-by: Sasha Levin Signed-off-by: Greg Kroah-Hartman --- drivers/clk/clk.c | 7 +++++++ 1 file changed, 7 insertions(+) --- a/drivers/clk/clk.c +++ b/drivers/clk/clk.c @@ -2684,7 +2684,13 @@ struct clk *clk_register(struct device * ret = -ENOMEM; goto fail_name; } + + if (WARN_ON(!hw->init->ops)) { + ret = -EINVAL; + goto fail_ops; + } core->ops = hw->init->ops; + if (dev && pm_runtime_enabled(dev)) core->dev = dev; if (dev && dev->driver) @@ -2746,6 +2752,7 @@ fail_parent_names_copy: kfree_const(core->parent_names[i]); kfree(core->parent_names); fail_parent_names: +fail_ops: kfree_const(core->name); fail_name: kfree(core);