src/drivers/intel: Avoid NULL pointer dereference
Coverity detects dereferencing pointers that might be "NULL" when calling acpigen_write_scope and acpigen_write_device. Add sanity check for both of scope and name to prevent NULL pointer dereference. Found-by: Coverity CID 1429979, 1429982 TEST=Built and boot up to kernel. Signed-off-by: John Zhao <john.zhao@intel.com> Change-Id: If17d12861f562dc0d6c98a5c91a9d3c0360ca2c9 Reviewed-on: https://review.coreboot.org/c/coreboot/+/42835 Reviewed-by: Wonkyu Kim <wonkyu.kim@intel.com> Reviewed-by: Patrick Rudolph <siro@das-labor.org> Reviewed-by: Tim Wawrzynczak <twawrzynczak@chromium.org> Tested-by: build bot (Jenkins) <no-reply@coreboot.org>
This commit is contained in:
parent
bda27cd336
commit
ff4ead052b
|
@ -29,13 +29,20 @@ static void con_fill_ssdt(const struct device *dev)
|
||||||
{
|
{
|
||||||
struct drivers_intel_pmc_mux_con_config *config = dev->chip_info;
|
struct drivers_intel_pmc_mux_con_config *config = dev->chip_info;
|
||||||
struct acpi_dp *dsd;
|
struct acpi_dp *dsd;
|
||||||
|
const char *scope;
|
||||||
|
const char *name;
|
||||||
|
|
||||||
if (!dev->enabled)
|
if (!dev->enabled)
|
||||||
return;
|
return;
|
||||||
|
|
||||||
/* Reference the existing scope and write CONx device */
|
/* Reference the existing scope and write CONx device */
|
||||||
acpigen_write_scope(acpi_device_scope(dev));
|
scope = acpi_device_scope(dev);
|
||||||
acpigen_write_device(acpi_device_name(dev));
|
name = acpi_device_name(dev);
|
||||||
|
if (!scope || !name)
|
||||||
|
return;
|
||||||
|
|
||||||
|
acpigen_write_scope(scope);
|
||||||
|
acpigen_write_device(name);
|
||||||
|
|
||||||
acpigen_write_name_integer("_ADR", dev->path.generic.id);
|
acpigen_write_name_integer("_ADR", dev->path.generic.id);
|
||||||
|
|
||||||
|
|
|
@ -13,8 +13,14 @@ static const char *mux_acpi_name(const struct device *dev)
|
||||||
|
|
||||||
static void mux_fill_ssdt(const struct device *dev)
|
static void mux_fill_ssdt(const struct device *dev)
|
||||||
{
|
{
|
||||||
acpigen_write_scope(acpi_device_scope(dev));
|
const char *scope = acpi_device_scope(dev);
|
||||||
acpigen_write_device(acpi_device_name(dev));
|
const char *name = acpi_device_name(dev);
|
||||||
|
|
||||||
|
if (!scope || !name)
|
||||||
|
return;
|
||||||
|
|
||||||
|
acpigen_write_scope(scope);
|
||||||
|
acpigen_write_device(name);
|
||||||
|
|
||||||
acpigen_write_name_string("_HID", TGL_PMC_MUX_HID);
|
acpigen_write_name_string("_HID", TGL_PMC_MUX_HID);
|
||||||
acpigen_write_name_string("_DDN", dev->chip_ops->name);
|
acpigen_write_name_string("_DDN", dev->chip_ops->name);
|
||||||
|
|
Loading…
Reference in New Issue