linux-yocto/drivers/acpi/acpica
Rafael J. Wysocki d547779e72 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>
2025-07-10 16:03:17 +02:00
..
acapps.h ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
accommon.h ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
acconvert.h ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
acdebug.h ACPICA: Add interrupt command to acpiexec 2023-07-10 18:48:15 +02:00
acdispat.h ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
acevents.h ACPICA: Add a depth argument to acpi_execute_reg_methods() 2024-08-29 17:33:13 +02:00
acglobal.h ACPICA: Detect GED device and keep track of _EVT 2023-07-10 18:33:47 +02:00
achware.h LoongArch: Fix warnings during S3 suspend 2025-02-08 09:52:27 +01:00
acinterp.h ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
aclocal.h ACPICA: Detect GED device and keep track of _EVT 2023-07-10 18:33:47 +02:00
acmacros.h ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
acnamesp.h ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
acobject.h ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
acopcode.h ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
acparser.h ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
acpredef.h ACPICA: Add support for _DSC as per ACPI 6.5 2023-07-10 15:21:03 +02:00
acresrc.h ACPICA: add support for ClockInput resource (v6.5) 2023-04-06 20:29:11 +02:00
acstruct.h ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
actables.h ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
acutils.h ACPICA: add support for ClockInput resource (v6.5) 2023-04-06 20:29:11 +02:00
amlcode.h ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
amlresrc.h ACPICA: acpi_resource_irq: Replace 1-element arrays with flexible array 2023-04-06 20:29:12 +02:00
dbcmds.c ACPICA: Add interrupt command to acpiexec 2023-07-10 18:48:15 +02:00
dbconvert.c ACPICA: check null return of ACPI_ALLOCATE_ZEROED() in acpi_db_convert_to_package() 2024-10-10 11:57:25 +02:00
dbdisply.c
dbexec.c
dbfileio.c
dbhistry.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
dbinput.c ACPICA: Add interrupt command to acpiexec 2023-07-10 18:48:15 +02:00
dbmethod.c
dbnames.c ACPICA: debugger: check status of acpi_evaluate_object() in acpi_db_walk_for_fields() 2024-04-10 16:35:42 +02:00
dbobject.c
dbstats.c
dbtest.c
dbutils.c
dbxface.c
dsargs.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
dscontrol.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
dsdebug.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
dsfield.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
dsinit.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
dsmethod.c ACPICA: Refuse to evaluate a method if arguments are missing 2025-07-10 16:03:17 +02:00
dsmthdat.c
dsobject.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
dsopcode.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
dspkginit.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
dsutils.c ACPICA: fix acpi operand cache leak in dswstate.c 2025-06-27 11:08:51 +01:00
dswexec.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
dswload.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
dswload2.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
dswscope.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
dswstate.c ACPICA: Slightly simplify an error message in acpi_ds_result_push() 2023-07-10 18:49:16 +02:00
evevent.c ACPI updates for 6.4-rc1 2023-04-25 18:37:41 -07:00
evglock.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
evgpe.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
evgpeblk.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
evgpeinit.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
evgpeutil.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
evhandler.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
evmisc.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
evregion.c ACPICA: Add a depth argument to acpi_execute_reg_methods() 2024-08-29 17:33:13 +02:00
evrgnini.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
evsci.c
evxface.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
evxfevnt.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
evxfgpe.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
evxfregn.c ACPICA: events/evxfregn: don't release the ContextMutex that was never acquired 2024-12-19 18:11:33 +01:00
exconcat.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
exconfig.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
exconvrt.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
excreate.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
exdebug.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
exdump.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
exfield.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
exfldio.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
exmisc.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
exmutex.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
exnames.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
exoparg1.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
exoparg2.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
exoparg3.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
exoparg6.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
exprep.c ACPICA: iasl: handle empty connection_node 2024-10-10 11:57:27 +02:00
exregion.c ACPICA: Revert "ACPICA: avoid Info: mapping multiple BARs. Your kernel is fine." 2024-06-27 13:49:10 +02:00
exresnte.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
exresolv.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
exresop.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
exserial.c ACPICA: exserial: don't forget to handle FFixedHW opregions for reading 2025-06-19 15:28:04 +02:00
exstore.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
exstoren.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
exstorob.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
exsystem.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
extrace.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
exutils.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
hwacpi.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
hwesleep.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
hwgpe.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
hwpci.c
hwregs.c
hwsleep.c ACPI updates for 6.4-rc1 2023-04-25 18:37:41 -07:00
hwtimer.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
hwvalid.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
hwxface.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
hwxfsleep.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
Makefile ACPI: disable -Wstringop-truncation 2024-06-12 11:11:40 +02:00
nsaccess.c
nsalloc.c
nsarguments.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
nsconvert.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
nsdump.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
nsdumpdv.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
nseval.c
nsinit.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
nsload.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
nsnames.c
nsobject.c
nsparse.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
nspredef.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
nsprepkg.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
nsrepair.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
nsrepair2.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
nssearch.c
nsutils.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
nswalk.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
nsxfeval.c
nsxfname.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
nsxfobj.c
psargs.c ACPICA: Fix memory leak if acpi_ps_get_next_field() fails 2024-10-10 11:57:23 +02:00
psloop.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
psobject.c ACPICA: fix acpi parse and parseext cache leaks 2025-06-27 11:08:52 +01:00
psopcode.c ACPICA: Add AML_NO_OPERAND_RESOLVE flag to Timer 2023-07-10 18:49:16 +02:00
psopinfo.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
psparse.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
psscope.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
pstree.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
psutils.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
pswalk.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
psxface.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
rsaddr.c ACPICA: Avoid undefined behavior: member access within misaligned address 2023-04-06 20:29:11 +02:00
rscalc.c ACPICA: Avoid undefined behavior: member access within misaligned address 2023-04-06 20:29:11 +02:00
rscreate.c
rsdump.c
rsdumpinfo.c ACPICA: add support for ClockInput resource (v6.5) 2023-04-06 20:29:11 +02:00
rsinfo.c ACPICA: add support for ClockInput resource (v6.5) 2023-04-06 20:29:11 +02:00
rsio.c
rsirq.c
rslist.c ACPICA: Avoid undefined behavior: member access within misaligned address 2023-04-06 20:29:11 +02:00
rsmemory.c
rsmisc.c ACPICA: Avoid undefined behavior: load of misaligned address 2023-04-06 20:29:11 +02:00
rsserial.c ACPICA: add support for ClockInput resource (v6.5) 2023-04-06 20:29:11 +02:00
rsutils.c
rsxface.c
tbdata.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
tbfadt.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
tbfind.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
tbinstal.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
tbprint.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
tbutils.c ACPICA: Avoid undefined behavior: load of misaligned address 2023-04-06 20:29:11 +02:00
tbxface.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
tbxfload.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
tbxfroot.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
utaddress.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
utalloc.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
utascii.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
utbuffer.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
utcache.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
utcksum.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
utcopy.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
utdebug.c ACPICA: Fix GCC 12 dangling-pointer warning 2023-07-10 15:21:03 +02:00
utdecode.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
utdelete.c
uterror.c
uteval.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
utexcep.c
utglobal.c ACPI updates for 6.4-rc1 2023-04-25 18:37:41 -07:00
uthex.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
utids.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
utinit.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
utlock.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
utmath.c
utmisc.c
utmutex.c
utnonansi.c
utobject.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
utosi.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
utownerid.c
utpredef.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
utprint.c ACPICA: utilities: Fix overflow check in vsnprintf() 2025-06-27 11:08:52 +01:00
utresdecode.c ACPICA: add support for ClockInput resource (v6.5) 2023-04-06 20:29:11 +02:00
utresrc.c ACPICA: Avoid undefined behavior: member access within misaligned address 2023-04-06 20:29:11 +02:00
utstate.c
utstring.c ACPICA: Improve warning message for "invalid ACPI name" 2022-10-28 17:28:23 +02:00
utstrsuppt.c
utstrtoul64.c
uttrack.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
utuuid.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
utxface.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
utxferror.c
utxfinit.c ACPICA: Update all copyrights/signons to 2023 2023-04-06 20:29:11 +02:00
utxfmutex.c