intel/common/block: Fix issue found by klockwork
src/soc/intel/common/block/pmc/pmclib.c
Function acpi_get_sleep_type: Pointer ps checked for
NULL may be dereferenced.
BRANCH=None
TEST=Built & booted Yorp board.
Change-Id: I15fe39fd9f930be56d03c2ffe62fb6f17249d4b5
Signed-off-by: John Zhao <john.zhao@intel.com>
Reviewed-on: https://review.coreboot.org/29149
Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
Reviewed-by: Aaron Durbin <adurbin@chromium.org>
Reviewed-by: Furquan Shaikh <furquan@google.com>
diff --git a/src/soc/intel/common/block/pmc/pmclib.c b/src/soc/intel/common/block/pmc/pmclib.c
index cfe8011..ef4384d 100644
--- a/src/soc/intel/common/block/pmc/pmclib.c
+++ b/src/soc/intel/common/block/pmc/pmclib.c
@@ -95,9 +95,13 @@
int acpi_get_sleep_type(void)
{
struct chipset_power_state *ps;
+ int prev_sleep_state = ACPI_S0;
ps = pmc_get_power_state();
- return ps->prev_sleep_state;
+ if (ps)
+ prev_sleep_state = ps->prev_sleep_state;
+
+ return prev_sleep_state;
}
static uint32_t pmc_reset_smi_status(void)