[PATCH] acpi: fan: fix potential null pointer dereference issue

Colin King colin.king at canonical.com
Thu Apr 26 08:26:39 UTC 2018


From: Colin Ian King <colin.king at canonical.com>

Check for non-null info->type before dereferencing it with a strcmp.

Detected by CoverityScan, CID#1390651 ("Null pointer dereferences")

Fixes: 0eb85f83c260 ("fan: cur_state == -1 is valid for intel_powerclamp")
Signed-off-by: Colin Ian King <colin.king at canonical.com>
---
 src/acpi/fan/fan.c | 23 +++++++++++++----------
 1 file changed, 13 insertions(+), 10 deletions(-)

diff --git a/src/acpi/fan/fan.c b/src/acpi/fan/fan.c
index 298d3a13..edd947e8 100644
--- a/src/acpi/fan/fan.c
+++ b/src/acpi/fan/fan.c
@@ -154,16 +154,19 @@ static int fan_test1(fwts_framework *fw)
 			fwts_failed(fw, LOG_LEVEL_MEDIUM, "NoFanMaxState",
 				"Fan %s present but has no max_state present.",
 				info->name);
-		if (info->cur_state == -1 && strcmp(info->type, "intel_powerclamp"))
-			fwts_failed(fw, LOG_LEVEL_MEDIUM, "NoFanCurState",
-				"Fan %s present but has no cur_state present.",
-				info->name);
-
-		if (info->type &&
-		    (info->max_state >= 0) && (info->cur_state >= 0))
-			fwts_passed(fw, "Fan %s of type %s has max cooling state %d "
-				"and current cooling state %d.",
-					info->name, info->type, info->max_state, info->cur_state);
+		if (info->type) {
+			if ((info->cur_state == -1) &&
+			    strcmp(info->type, "intel_powerclamp"))
+				fwts_failed(fw, LOG_LEVEL_MEDIUM, "NoFanCurState",
+					"Fan %s present but has no cur_state present.",
+					info->name);
+
+			if ((info->max_state >= 0) && (info->cur_state >= 0))
+				fwts_passed(fw, "Fan %s of type %s has max cooling "
+					"state %d and current cooling state %d.",
+					info->name, info->type, info->max_state,
+					info->cur_state);
+		}
 	}
 
 	fwts_list_free(fans, free_fan_info);
-- 
2.17.0




More information about the fwts-devel mailing list