ACPI: Add out of bounds and numa_off protections to pxm_to_node()
authorJonathan Cameron <Jonathan.Cameron@huawei.com>
Tue, 18 Aug 2020 14:24:25 +0000 (22:24 +0800)
committerRafael J. Wysocki <rafael.j.wysocki@intel.com>
Thu, 24 Sep 2020 10:57:37 +0000 (12:57 +0200)
The function should check the validity of the pxm value before using
it to index the pxm_to_node_map[] array.

Whilst hardening this code may be good in general, the main intent
here is to enable following patches that use this function to replace
acpi_map_pxm_to_node() for non SRAT usecases which should return
NO_NUMA_NODE for PXM entries not matching with those in SRAT.

Signed-off-by: Jonathan Cameron <Jonathan.Cameron@huawei.com>
Reviewed-by: Barry Song <song.bao.hua@hisilicon.com>
Reviewed-by: Hanjun Guo <guohanjun@huawei.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
drivers/acpi/numa/srat.c

index 15bbaab..1fb486f 100644 (file)
@@ -31,7 +31,7 @@ int acpi_numa __initdata;
 
 int pxm_to_node(int pxm)
 {
-       if (pxm < 0)
+       if (pxm < 0 || pxm >= MAX_PXM_DOMAINS || numa_off)
                return NUMA_NO_NODE;
        return pxm_to_node_map[pxm];
 }