Received: by 2002:a05:6a10:16a7:0:0:0:0 with SMTP id gp39csp3659875pxb; Mon, 16 Nov 2020 23:22:39 -0800 (PST) X-Google-Smtp-Source: ABdhPJyDxsONReaOxK/d1Zqb61XU0jW4+A+7Q/6LcL5sNpGcBvnZekX7MI7q6A4IJn6v0KjcFYT9 X-Received: by 2002:a50:d315:: with SMTP id g21mr19655039edh.84.1605597759136; Mon, 16 Nov 2020 23:22:39 -0800 (PST) ARC-Seal: i=1; a=rsa-sha256; t=1605597759; cv=none; d=google.com; s=arc-20160816; b=nezxCKR6m+OsNaNl1Wp6y2MNrRRnsBr2Khxix4j4FFZeMNktjw7c49eaHKWoYPr8wi dhU+4UhpdI5gB+YQfxpz1myVxyHteps7FVwQBv7xuppshrSW56oTl7p3XNptMmpEr3Ug 5NFNQiQhgYM8ItsMzHaASPMIxspIToWo9ds/GGTEbjUNqqi9A97vpQGFvjte17yN8lTf bD2bpifcvqkJNjo+5Eg1YCVnqhFSm2prE5KTKW/rhWK63PgelBtigoodEAwOXbvN6nft lNfI+s8zfXXu9fDvDsKSWZfbi+2LE6G6b5H2+VJ1oyAXOf8sO0tsInCGQKic7Jo7QIxl XbBA== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:mime-version :references:in-reply-to:date:cc:to:from:subject:message-id :ironport-sdr:ironport-sdr; bh=YdN4uNkXWQdh3xdcee2cE/j8UcPHN1U9RllvaQlb7CE=; b=ds9aBEcASt0mw+lZQLbyKiu5QQ/biwcfsq52HYzoqByiYYRUJgeTKkeyLI/hW2KtP4 lFonTwbMSMJe7WOqizEH6T2ZLGPq1uX+DtzxHNPI2QGVtmuFW0UNjQ26JdZcZ+/SSkgy MGJxmtzxD9ZwNBJQIO7apqVAs7vbqdqcDlgcpqtt2XUC6yENjRrlNEu8knMuCL5SY2fb xZWPy+hbU8+QIO0gPjyhriSQMORtebahWDIldKWCdNy7KX/1/LBBQRC/g820mttiifNQ nBiQbD0Xx4Ft9yzqTRIx2Tl4zIM1j2OpTv3EGSyTlP4JdwqUbEtb7A7oVVM3O2IpcSPy UBow== ARC-Authentication-Results: i=1; mx.google.com; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [23.128.96.18]) by mx.google.com with ESMTP id w8si13307155ejv.263.2020.11.16.23.22.16; Mon, 16 Nov 2020 23:22:39 -0800 (PST) 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; 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; dmarc=fail (p=NONE sp=NONE dis=NONE) header.from=intel.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1726348AbgKQHTC (ORCPT + 99 others); Tue, 17 Nov 2020 02:19:02 -0500 Received: from mga09.intel.com ([134.134.136.24]:64092 "EHLO mga09.intel.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1726199AbgKQHTC (ORCPT ); Tue, 17 Nov 2020 02:19:02 -0500 IronPort-SDR: q/XLf/syn0pkLSChM1xhZkMf8uWsw47gVT5B5twViLsomDWgmx/aX0S7FJxhMvU6WWmF0S7Hih ZE56prMT8IHQ== X-IronPort-AV: E=McAfee;i="6000,8403,9807"; a="171046561" X-IronPort-AV: E=Sophos;i="5.77,484,1596524400"; d="scan'208";a="171046561" X-Amp-Result: SKIPPED(no attachment in message) X-Amp-File-Uploaded: False Received: from orsmga005.jf.intel.com ([10.7.209.41]) by orsmga102.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Nov 2020 23:19:01 -0800 IronPort-SDR: OJyEAJwupTcejrNgP+arSDCBG3RV0nzIt3rzpr4dk9U72ehub4eMTKsIRitC5+hhJHKjPzP6f3 MCebQDWd9zZA== X-IronPort-AV: E=Sophos;i="5.77,484,1596524400"; d="scan'208";a="543923046" Received: from lil6-mobl1.ccr.corp.intel.com ([10.255.30.220]) by orsmga005-auth.jf.intel.com with ESMTP/TLS/ECDHE-RSA-AES256-GCM-SHA384; 16 Nov 2020 23:18:59 -0800 Message-ID: <4e28affd89ba8a852e0fb7ace076458b3d43839a.camel@intel.com> Subject: Re: [PATCH] thermal: Fix NULL pointer dereference issue From: Zhang Rui To: Mukesh Ojha , linux-pm@vger.kernel.org, linux-kernel@vger.kernel.org Cc: daniel.lezcano@linaro.org, amitk@kernel.org Date: Tue, 17 Nov 2020 15:18:57 +0800 In-Reply-To: <1605544181-5348-1-git-send-email-mojha@codeaurora.org> References: <1605544181-5348-1-git-send-email-mojha@codeaurora.org> Content-Type: text/plain; charset="UTF-8" X-Mailer: Evolution 3.28.5-0ubuntu0.18.04.1 Mime-Version: 1.0 Content-Transfer-Encoding: 7bit Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, 2020-11-16 at 21:59 +0530, Mukesh Ojha wrote: > Cooling stats variable inside thermal_cooling_device_stats_update() > can get NULL. We should add a NULL check on stat inside for sanity. > > Signed-off-by: Mukesh Ojha > --- > drivers/thermal/thermal_sysfs.c | 3 +++ > 1 file changed, 3 insertions(+) > > diff --git a/drivers/thermal/thermal_sysfs.c > b/drivers/thermal/thermal_sysfs.c > index a6f371f..f52708f 100644 > --- a/drivers/thermal/thermal_sysfs.c > +++ b/drivers/thermal/thermal_sysfs.c > @@ -754,6 +754,9 @@ void thermal_cooling_device_stats_update(struct > thermal_cooling_device *cdev, > { > struct cooling_dev_stats *stats = cdev->stats; > > + if (!stats) > + return; > + May I know in which case stats can be NULL? The only possibility I can see is that cdev->ops->get_max_state() fails in cooling_device_stats_setup(), right? thanks, rui > spin_lock(&stats->lock); > > if (stats->state == new_state)