linux/drivers/acpi
Rafael J. Wysocki 4305d936ab ACPICA: Refuse to evaluate a method if arguments are missing
[ Upstream commit 6fcab27915 ]

As reported in [1], a platform firmware update that increased the number
of method parameters and forgot to update a least one of its callers,
caused ACPICA to crash due to use-after-free.

Since this a result of a clear AML issue that arguably cannot be fixed
up by the interpreter (it cannot produce missing data out of thin air),
address it by making ACPICA refuse to evaluate a method if the caller
attempts to pass fewer arguments than expected to it.

Closes: https://github.com/acpica/acpica/issues/1027 [1]
Reported-by: Peter Williams <peter@newton.cx>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Reviewed-by: Hans de Goede <hansg@kernel.org>
Tested-by: Hans de Goede <hansg@kernel.org> # Dell XPS 9640 with BIOS 1.12.0
Link: https://patch.msgid.link/5909446.DvuYhMxLoT@rjwysocki.net
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
History 2025-07-10 15:59:51 +02:00
..
acpica ACPICA: Refuse to evaluate a method if arguments are missing 2025-07-10 15:59:51 +02:00
apei firmware: SDEI: Allow sdei initialization without ACPI_APEI_GHES 2025-06-27 11:07:08 +01:00
arm64 acpi/arm64: Adjust error handling procedure in gtdt_parse_timer_block() 2024-12-14 19:53:15 +01:00
dptf ACPI: DPTF: Drop stale link from Kconfig help 2022-09-28 17:26:25 +02:00
nfit acpi: nfit: fix narrowing conversion in acpi_nfit_ctl 2025-04-10 14:33:42 +02:00
numa x86/numa: Fix SRAT lookup of CFMWS ranges with numa_fill_memblks() 2024-06-12 11:03:17 +02:00
pmic ACPI: PMIC: Remove unneeded check in tps68470_pmic_opregion_probe() 2024-10-17 15:20:36 +02:00
x86 ACPI: x86: Force StorageD3Enable on more products 2024-07-05 09:31:43 +02:00
ac.c ACPI: AC: Remove the leftover struct acpi_ac_bl 2022-09-24 18:22:59 +02:00
acpi_adxl.c ACPI/ADXL: Add address translation interface using an ACPI DSM 2018-10-16 10:03:00 +02:00
acpi_amba.c Merge branches 'acpi-ec', 'acpi-ac', 'acpi-fan', 'acpi-video' and 'acpi-amba' 2022-10-03 19:59:47 +02:00
acpi_apd.c ACPI: processor: Check for null return of devm_kzalloc() in fch_misc_setup() 2023-05-24 17:32:35 +01:00
acpi_cmos_rtc.c ACPI: cmos_rtc: Using pr_fmt() and remove PREFIX 2021-06-07 15:36:45 +02:00
acpi_configfs.c ACPI: configfs: Make get_header() to return error pointer 2021-07-16 19:20:28 +02:00
acpi_dbg.c ACPI: debug: Remove the not used function 2020-11-17 18:12:34 +01:00
acpi_extlog.c ACPI: extlog: fix NULL pointer dereference check 2024-02-05 20:12:47 +00:00
acpi_fpdt.c ACPI: FPDT: properly handle invalid FPDT subtables 2023-11-28 17:07:12 +00:00
acpi_ipmi.c ACPI: IPMI: replace usage of found with dedicated list iterator variable 2022-03-25 18:01:40 +01:00
acpi_lpat.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174 2019-05-30 11:26:41 -07:00
acpi_lpit.c ACPI: LPIT: Avoid u32 multiplication overflow 2024-01-25 15:27:19 -08:00
acpi_lpss.c ACPI: LPSS: Advertise number of chip selects via property 2024-06-12 11:03:10 +02:00
acpi_memhotplug.c ACPI: memhotplug: use a single static memory group for a single memory device 2021-09-08 11:50:23 -07:00
acpi_pad.c ACPI: PAD: fix crash in exit_round_robin() 2024-10-17 15:21:36 +02:00
acpi_pcc.c ACPI: PCC: Fix unintentional integer overflow 2022-10-26 13:33:31 +02:00
acpi_platform.c Merge branches 'acpi-scan', 'acpi-bus' and 'acpi-platform' 2022-09-30 20:28:22 +02:00
acpi_pnp.c ACPI: PNP: remove duplicated BRI0A49 and BDP3336 entries 2021-09-24 18:12:15 +02:00
acpi_processor.c ACPI: processor: Fix memory leaks in error paths of processor_add() 2024-09-12 11:10:28 +02:00
acpi_tad.c ACPI: Use DEVICE_ATTR_<RW|RO|WO> macros 2021-01-22 16:17:19 +01:00
acpi_video.c ACPI: video: Add quirk for the Colorful X15 AT 23 Laptop 2024-02-05 20:12:47 +00:00
acpi_watchdog.c ACPI: watchdog: Replace open coded variant of resource_union() 2020-11-17 18:06:29 +01:00
battery.c ACPI: battery: negate current when discharging 2025-06-27 11:07:32 +01:00
bgrt.c ACPI: BGRT: use static for BGRT_SHOW kobj_attribute defines 2022-04-22 16:55:33 +02:00
blacklist.c ACPI: blacklist: Unify the message printing 2021-06-07 15:36:45 +02:00
bus.c ACPI: bus: Bail out if acpi_kobj registration fails 2025-06-27 11:07:32 +01:00
button.c ACPI: button: Add DMI quirk for Samsung Galaxy Book2 to fix initial lid detection issue 2024-11-01 01:56:06 +01:00
container.c ACPI: container: Use acpi_dev_for_each_child() 2022-06-20 20:33:05 +02:00
cppc_acpi.c ACPI: CPPC: Fix NULL pointer dereference when nosmp is used 2025-06-27 11:07:22 +01:00
custom_method.c ACPI: custom_method: fix a possible memory leak 2021-04-28 19:17:54 +02:00
debugfs.c ACPI: debugfs: Remove dead ACPICA debug code 2020-09-25 18:25:51 +02:00
device_pm.c PCI/ACPI: Account for _S0W of the target bridge in acpi_pci_bridge_d3() 2023-03-11 13:55:33 +01:00
device_sysfs.c ACPI: sysfs: validate return type of _STR method 2024-10-17 15:21:21 +02:00
dock.c ACPI: Use acpi_fetch_acpi_dev() instead of acpi_bus_get_device() 2021-12-17 18:45:51 +01:00
ec.c ACPI: EC: Set ec_no_wakeup for Lenovo Go S 2025-05-02 07:47:05 +02:00
ec_sys.c ACPI: EC: Mark the ec_sys write_support param as module_param_hw() 2021-12-01 20:19:30 +01:00
event.c Merge branches 'acpi-ec', 'acpi-apei', 'acpi-soc' and 'acpi-misc' 2021-06-29 15:51:25 +02:00
evged.c ACPI: GED: fix -Wformat 2020-11-09 19:25:20 +01:00
fan.h ACPI: DPTF: Support Meteor Lake 2022-05-25 15:37:07 +02:00
fan_attr.c ACPI: fan: Add additional attributes for fine grain control 2022-02-25 20:49:30 +01:00
fan_core.c ACPI: fan: cleanup resources in the error path of .probe() 2025-02-21 13:49:00 +01:00
glue.c ACPI: Fix selecting wrong ACPI fwnode for the iGPU on some Dell laptops 2023-01-18 11:58:11 +01:00
hed.c ACPI: HED: Always initialize before evged 2025-06-04 14:40:13 +02:00
internal.h ACPI: scan: Eliminate __acpi_device_add() 2022-08-23 18:19:27 +02:00
ioapic.c treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 500 2019-06-19 17:09:55 +02:00
irq.c ACPI: irq: Fix incorrect return value in acpi_register_gsi() 2023-10-25 12:03:14 +02:00
Kconfig ACPI: HED: Always initialize before evged 2025-06-04 14:40:13 +02:00
Makefile ACPI: processor: Split out thermal initialization from ACPI PSS 2022-06-29 18:51:22 +02:00
nvs.c Merge branches 'acpi-ec', 'acpi-apei', 'acpi-soc' and 'acpi-misc' 2021-06-29 15:51:25 +02:00
osi.c ACPI: OSI: Stop advertising support for "3.0 _SCP Extensions" 2025-06-27 11:07:07 +01:00
osl.c ACPI: OSL: Remove the helper for deactivating memory region 2022-04-27 20:44:55 +02:00
pci_irq.c ACPI: PCI: IRQ: Consolidate printing diagnostic messages 2021-03-08 16:51:08 +01:00
pci_link.c ACPI/PCI: Remove useless NULL pointer checks 2022-07-27 21:21:27 +02:00
pci_mcfg.c PCI: loongson: Add ACPI init support 2022-07-14 15:25:36 -05:00
pci_root.c ACPI: PCI: Fix device reference counting in acpi_get_pci_dev() 2022-10-19 13:28:30 +02:00
pci_slot.c ACPI: PCI: Remove unused ACPICA debug code 2020-09-25 18:25:51 +02:00
pfr_telemetry.c ACPI: pfr_telemetry: use ACPI_FREE() to free acpi_object 2022-12-31 13:31:57 +01:00
pfr_update.c use less confusing names for iov_iter direction initializers 2023-02-09 11:28:04 +01:00
platform_profile.c ACPI: platform-profile: Fix CFI violation when accessing sysfs files 2025-04-25 10:43:46 +02:00
power.c ACPI: PM: Do not turn of unused power resources on the Toshiba Click Mini 2023-05-11 23:03:38 +09:00
pptt.c ACPI: PPTT: Fix processor subtable walk 2025-05-22 14:10:04 +02:00
prmt.c ACPI: PRM: Remove unnecessary strict handler address checks 2025-02-21 13:49:47 +01:00
proc.c proc: remove PDE_DATA() completely 2022-01-22 08:33:37 +02:00
processor_core.c ACPI: processor: Remove dead ACPICA debug code 2020-09-25 18:25:51 +02:00
processor_driver.c ACPI: processor: Split out thermal initialization from ACPI PSS 2022-06-29 18:51:22 +02:00
processor_idle.c ACPI: processor: idle: Return an error if both P_LVL{2,3} idle states are invalid 2025-04-10 14:33:38 +02:00
processor_pdc.c ACPI: processor: Fix evaluating _PDC method when running as Xen dom0 2023-05-11 23:03:11 +09:00
processor_perflib.c ACPI: processor: perflib: Avoid updating frequency QoS unnecessarily 2023-08-03 10:24:18 +02:00
processor_thermal.c ACPI: processor: Remove freq Qos request for all CPUs 2022-08-23 18:09:06 +02:00
processor_throttling.c Merge branches 'acpi-dptf' and 'acpi-messages' 2021-06-29 15:50:37 +02:00
property.c ACPI: property: Fix return value for nval == 0 in acpi_data_prop_read() 2025-02-21 13:49:37 +01:00
reboot.c ACPI: reboot: Unify the message printing 2021-06-07 15:36:46 +02:00
resource.c ACPI: resource: Skip IRQ override on ASUS Vivobook 14 X1404VAP 2025-04-10 14:33:42 +02:00
sbs.c ACPI: SBS: manage alarm sysfs attribute through psy core 2024-08-14 13:52:45 +02:00
sbshc.c ACPI: Drop parent field from struct acpi_device 2022-08-24 20:55:24 +02:00
sbshc.h ACPI: Fix whitespace inconsistencies 2020-11-09 19:08:06 +01:00
scan.c ACPI: scan: Fix device check notification handling 2024-03-26 18:20:38 -04:00
sleep.c Revert "ACPI: PM: Block ASUS B1400CEAE from suspend to idle by default" 2024-04-13 13:05:11 +02:00
sleep.h ACPI: s2idle: Add a new ->check() callback for platform_s2idle_ops 2022-09-09 17:37:40 +02:00
spcr.c ACPI: SPCR: Add support for NVIDIA 16550-compatible port subtype 2022-04-13 20:37:29 +02:00
sysfs.c ACPI: sysfs: Fix BERT error region memory mapping 2022-04-13 19:58:14 +02:00
tables.c ACPI: tables: Make LAPIC_ADDR_OVR address readable in message 2022-03-25 18:11:42 +01:00
thermal.c ACPI: thermal: Drop nocrt parameter 2023-09-02 09:16:18 +02:00
tiny-power-button.c ACPI: tiny-power-button: Simplify the code using module_acpi_driver() 2020-11-17 18:12:34 +01:00
utils.c Merge branch 'acpi-uid' 2022-10-03 20:09:22 +02:00
video_detect.c ACPI: video: Add force_vendor quirk for Panasonic Toughbook CF-18 2024-10-17 15:21:37 +02:00
viot.c ACPI: VIOT: Initialize the correct IOMMU fwspec 2023-05-11 23:03:12 +09:00
wakeup.c ACPI: Fix whitespace inconsistencies 2020-11-09 19:08:06 +01:00