]> git.proxmox.com Git - mirror_ubuntu-jammy-kernel.git/commit
ACPI: NFIT: Fix ARS zero-sized allocation
authorDan Williams <dan.j.williams@intel.com>
Sat, 1 Aug 2020 01:38:26 +0000 (18:38 -0700)
committerVishal Verma <vishal.l.verma@intel.com>
Mon, 3 Aug 2020 18:36:34 +0000 (12:36 -0600)
commit9f1048d47e8ae4cc21e80facf2ba4b01a6623b67
tree63ddcda40da7133d559b65d2c3b0615073453590
parent49688e654e48ae176b5bfda33d2416b68e607ce8
ACPI: NFIT: Fix ARS zero-sized allocation

Pending commit in -next "devres: handle zero size in devm_kmalloc()"
triggers a boot regression due to the ARS implementation expecting NULL
from a zero-sized allocation. Avoid the zero-sized allocation by
skipping ARS, otherwise crashes with the following signature when
de-referencing ZERO_SIZE_PTR.

     BUG: kernel NULL pointer dereference, address: 0000000000000018
     #PF: supervisor read access in kernel mode
     #PF: error_code(0x0000) - not-present page
     RIP: 0010:__acpi_nfit_scrub+0x28a/0x350 [nfit]
     [..]
     Call Trace:
       ? acpi_nfit_query_poison+0x6a/0x180 [nfit]
       acpi_nfit_scrub+0x36/0xb0 [nfit]
       process_one_work+0x23c/0x580
       worker_thread+0x50/0x3b0

Otherwise the implementation correctly aborts when NULL is returned from
devm_kzalloc() in ars_status_alloc().

Link: https://lore.kernel.org/r/159624590643.3037264.14157533719042907758.stgit@dwillia2-desk3.amr.corp.intel.com
Cc: Vishal Verma <vishal.l.verma@intel.com>
Cc: Dave Jiang <dave.jiang@intel.com>
Cc: Ira Weiny <ira.weiny@intel.com>
Signed-off-by: Dan Williams <dan.j.williams@intel.com>
Signed-off-by: Vishal Verma <vishal.l.verma@intel.com>
drivers/acpi/nfit/core.c