]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
thermal/drivers/tsens: Fix null pointer dereference
authorAleksandr Mishin <amishin@t-argos.ru>
Thu, 11 Apr 2024 11:40:21 +0000 (14:40 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 30 May 2024 07:49:13 +0000 (09:49 +0200)
[ Upstream commit d998ddc86a27c92140b9f7984ff41e3d1d07a48f ]

compute_intercept_slope() is called from calibrate_8960() (in tsens-8960.c)
as compute_intercept_slope(priv, p1, NULL, ONE_PT_CALIB) which lead to null
pointer dereference (if DEBUG or DYNAMIC_DEBUG set).
Fix this bug by adding null pointer check.

Found by Linux Verification Center (linuxtesting.org) with SVACE.

Fixes: dfc1193d4dbd ("thermal/drivers/tsens: Replace custom 8960 apis with generic apis")
Signed-off-by: Aleksandr Mishin <amishin@t-argos.ru>
Reviewed-by: Konrad Dybcio <konrad.dybcio@linaro.org>
Signed-off-by: Daniel Lezcano <daniel.lezcano@linaro.org>
Link: https://lore.kernel.org/r/20240411114021.12203-1-amishin@t-argos.ru
Signed-off-by: Sasha Levin <sashal@kernel.org>
drivers/thermal/qcom/tsens.c

index 6d7c16ccb44dc44946ec7937659e2727fe2fe0ba..4edee8d929a75877bd5ef0c9190447fb2b5fbcc0 100644 (file)
@@ -264,7 +264,7 @@ void compute_intercept_slope(struct tsens_priv *priv, u32 *p1,
        for (i = 0; i < priv->num_sensors; i++) {
                dev_dbg(priv->dev,
                        "%s: sensor%d - data_point1:%#x data_point2:%#x\n",
-                       __func__, i, p1[i], p2[i]);
+                       __func__, i, p1[i], p2 ? p2[i] : 0);
 
                if (!priv->sensor[i].slope)
                        priv->sensor[i].slope = SLOPE_DEFAULT;