mirror-linux/drivers/acpi
Rafael J. Wysocki 6fcab27915 ACPICA: Refuse to evaluate a method if arguments are missing
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>
2025-06-18 21:12:13 +02:00
..
acpica ACPICA: Refuse to evaluate a method if arguments are missing 2025-06-18 21:12:13 +02:00
apei ACPI: APEI: EINJ: Do not fail einj_init() on faux_device_create() failure 2025-06-10 19:23:25 +02:00
arm64 iommu: Get DT/ACPI parsing into the proper probe path 2025-03-11 14:05:43 +01:00
dptf ACPI: DPTF: Support Panther Lake 2024-12-10 20:01:38 +01:00
nfit acpi: nfit: fix narrowing conversion in acpi_nfit_ctl 2025-03-03 08:03:43 -06:00
numa mm: numa_memblks: introduce numa_add_reserved_memblk 2025-05-22 14:55:36 -07:00
pmic ACPI: PMIC: Remove unneeded check in tps68470_pmic_opregion_probe() 2024-08-02 17:05:08 +02:00
riscv ACPI: introduce acpi_arch_init() 2024-11-22 21:32:25 +01:00
x86 ACPI: x86: Extend Lenovo Yoga Tab 3 quirk with skip GPIO event-handlers 2025-03-27 20:41:19 +01:00
Kconfig ACPI: MRRM: Minimal parse of ACPI MRRM table 2025-05-12 15:43:16 +02:00
Makefile ACPI: MRRM: Minimal parse of ACPI MRRM table 2025-05-12 15:43:16 +02:00
ac.c ACPI: Switch back to struct platform_driver::remove() 2024-11-12 21:30:30 +01:00
acpi_adxl.c
acpi_apd.c ACPI: APD: Use strscpy() instead of strcpy() 2024-11-05 21:35:35 +01:00
acpi_configfs.c
acpi_dbg.c
acpi_extlog.c x86/msr: Add explicit includes of <asm/msr.h> 2025-05-02 10:23:47 +02:00
acpi_ffh.c
acpi_fpdt.c
acpi_ipmi.c
acpi_lpat.c
acpi_lpit.c x86/msr: Rename 'rdmsrl_safe()' to 'rdmsrq_safe()' 2025-04-10 11:58:38 +02:00
acpi_memhotplug.c
acpi_mrrm.c ACPI: MRRM: Silence error code static checker warning 2025-05-27 15:22:56 +02:00
acpi_pad.c ACPI: PAD: Update arguments of mwait_idle_with_hints() 2025-06-10 20:47:56 +02:00
acpi_pcc.c ACPI: PCC: Simplify PCC shared memory region handling 2025-04-30 21:51:23 +02:00
acpi_platform.c
acpi_pnp.c More ACPI updates for 6.15-rc1 2025-04-02 15:16:30 -07:00
acpi_processor.c Merge branches 'acpi-video', 'acpi-resource', 'acpi-pad' and 'acpi-misc' 2024-09-11 22:05:16 +02:00
acpi_tad.c ACPI: Switch back to struct platform_driver::remove() 2024-11-12 21:30:30 +01:00
acpi_video.c ACPI: video: Handle fetching EDID as ACPI_TYPE_PACKAGE 2025-03-31 17:02:14 +02:00
acpi_watchdog.c
battery.c ACPI: battery: negate current when discharging 2025-05-09 21:14:34 +02:00
bgrt.c ACPI: BGRT: Constify 'struct bin_attribute' 2024-12-10 19:34:41 +01:00
bus.c ACPI: bus: Bail out if acpi_kobj registration fails 2025-05-23 16:54:52 +02:00
button.c ACPI: button: Only send `KEY_POWER` for `ACPI_BUTTON_NOTIFY_STATUS` 2025-04-07 19:52:17 +02:00
container.c
cppc_acpi.c ACPI: CPPC: Fix NULL pointer dereference when nosmp is used 2025-06-10 20:52:50 +02:00
debugfs.c
device_pm.c PM: sleep: Use DPM_FLAG_SMART_SUSPEND conditionally 2025-02-19 13:22:12 +01:00
device_sysfs.c ACPI: sysfs: remove return value of acpi_device_setup_files() 2024-08-02 16:44:22 +02:00
dock.c
ec.c ACPI: EC: Ignore ECDT tables with an invalid ID string 2025-06-10 20:55:31 +02:00
ec_sys.c
event.c ACPI: event: Use strscpy() instead of strcpy() 2024-11-05 21:35:35 +01:00
evged.c ACPI: Switch back to struct platform_driver::remove() 2024-11-12 21:30:30 +01:00
fan.h ACPI: fan: Add fan speed reporting for fans with only _FST 2025-02-25 21:48:51 +01:00
fan_attr.c ACPI: fan: Add fan speed reporting for fans with only _FST 2025-02-25 21:48:51 +01:00
fan_core.c ACPI: fan: Add fan speed reporting for fans with only _FST 2025-02-25 21:48:51 +01:00
fan_hwmon.c ACPI: fan: Add fan speed reporting for fans with only _FST 2025-02-25 21:48:51 +01:00
glue.c
hed.c ACPI: HED: Always initialize before evged 2025-02-18 19:24:29 +01:00
internal.h ACPI: processor: Rescan "dead" SMT siblings during initialization 2025-06-07 14:23:22 +02:00
ioapic.c
irq.c ACPI: irq: Introduce acpi_get_gsi_dispatcher() 2025-05-23 16:30:55 +00:00
mipi-disco-img.c ACPI: bus: change the prototype for acpi_get_physical_device_location 2024-12-19 20:59:35 +01:00
nhlt.c
nvs.c
osi.c ACPI: OSI: Stop advertising support for "3.0 _SCP Extensions" 2025-05-16 15:53:26 +02:00
osl.c ACPI: OSL: Use usleep_range() in acpi_os_sleep() 2024-12-10 19:45:27 +01:00
pci_irq.c xen/pvh: Setup gsi for passthrough device 2024-09-25 09:54:52 +02:00
pci_link.c ACPI: pci_link: Use strscpy() instead of strcpy() 2024-11-05 21:35:36 +01:00
pci_mcfg.c PCI/ACPI: Increase Loongson max PCI hosts to 8 2024-08-01 18:04:05 -05:00
pci_root.c ACPI: PCI: Constify fwnode_handle in acpi_pci_root_remap_iospace() 2025-05-09 20:47:26 +02:00
pci_slot.c
pfr_telemetry.c Merge branch 'acpi-misc' 2024-11-15 20:52:02 +01:00
pfr_update.c ACPI: Switch back to struct platform_driver::remove() 2024-11-12 21:30:30 +01:00
platform_profile.c ACPI: platform_profile: Avoid initializing on non-ACPI platforms 2025-05-23 16:44:52 +02:00
power.c ACPI: power: Use str_on_off() helper function 2025-02-18 18:48:32 +01:00
pptt.c ACPI: PPTT: Fix processor subtable walk 2025-05-08 20:23:16 +02:00
prmt.c ACPI: PRM: Remove unnecessary strict handler address checks 2025-02-05 21:16:40 +01:00
proc.c
processor_core.c
processor_driver.c ACPI: processor: Rescan "dead" SMT siblings during initialization 2025-06-07 14:23:22 +02:00
processor_idle.c ACPI: processor: Rescan "dead" SMT siblings during initialization 2025-06-07 14:23:22 +02:00
processor_pdc.c
processor_perflib.c x86/msr: Add explicit includes of <asm/msr.h> 2025-05-02 10:23:47 +02:00
processor_thermal.c
processor_throttling.c x86/msr: Remove a superfluous inclusion of <asm/asm.h> 2025-05-18 08:39:09 +02:00
property.c ACPI: property: Fix return value for nval == 0 in acpi_data_prop_read() 2025-02-05 21:09:28 +01:00
reboot.c
resource.c ACPI: resource: Use IRQ override on MACHENIKE 16P 2025-06-10 20:58:37 +02:00
sbs.c ACPI: SBS: Use strscpy() instead of strcpy() 2024-11-05 21:35:36 +01:00
sbshc.c Merge branch 'acpi-misc' 2024-11-15 20:52:02 +01:00
sbshc.h
scan.c iommu: Get DT/ACPI parsing into the proper probe path 2025-03-11 14:05:43 +01:00
sleep.c ACPI: PM: Quirk ASUS ROG M16 to default to S3 sleep 2024-09-10 20:19:52 +02:00
sleep.h
spcr.c
sysfs.c ACPI: sysfs: Constify 'struct bin_attribute' 2024-12-10 19:34:41 +01:00
tables.c ACPI: tables: Improve logging around acpi_initialize_tables() 2025-05-12 15:43:16 +02:00
thermal.c ACPI: thermal: Execute _SCP before reading trip points 2025-05-16 15:53:26 +02:00
thermal_lib.c module: Convert symbol namespace to string literal 2024-12-02 11:34:44 -08:00
tiny-power-button.c
utils.c ACPI: bus: change the prototype for acpi_get_physical_device_location 2024-12-19 20:59:35 +01:00
video_detect.c ACPI: video: force native for Apple MacbookPro11,2 and Air7,2 2024-11-13 12:48:50 +01:00
viot.c ACPI: VIOT: Remove (explicitly) unused header 2025-05-12 15:43:16 +02:00
wakeup.c