On 4/5/2019 7:42 PM, Colin King wrote:
From: Colin Ian King <[email protected]> The pointer 'target' is not initialized and is only assigned when the ACPI_HMAT_MEMORY_PD_VALID bit in p->flags is set. There is a later null check on target that leads to an uninitialized pointer read and dereference when assigning target->processor_pxm when target contains a non-null garbage value. Fix this by initializing targer to null. Fixes: 665ac7e92757 ("acpi/hmat: Register processor domain to its memory") Addresses-Coverity: ("Uninitialized pointer read") Signed-off-by: Colin Ian King <[email protected]>
Reviewed-by: Mukesh Ojha <[email protected]> Cheers, -Mukesh
--- drivers/acpi/hmat/hmat.c | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/drivers/acpi/hmat/hmat.c b/drivers/acpi/hmat/hmat.c index b7824a0309f7..b275016ff648 100644 --- a/drivers/acpi/hmat/hmat.c +++ b/drivers/acpi/hmat/hmat.c @@ -366,7 +366,7 @@ static int __init hmat_parse_proximity_domain(union acpi_subtable_headers *heade const unsigned long end) { struct acpi_hmat_proximity_domain *p = (void *)header; - struct memory_target *target; + struct memory_target *target = NULL;if (p->header.length != sizeof(*p)) {pr_notice("HMAT: Unexpected address range header length: %d\n",

