linux/drivers/acpi/acpica
Robert Moore 53951bd57d acpica: validate package element more carefully in acpi_rs_get_pci_routing_table_length
acpi_rs_get_pci_routing_table_length is not performing sufficient
validation on the package returned from _PRT.  It assumes a package of
packages and fails/faults if this is not the case.

We should validate each subpackage when extracted from the parent
package, and not accept objects of the wrong type, since that will just
cause the scanning to fail (likely with a kernel oops).

This can only happen with a serious BIOS bug, and is accompanied by a
warning something like this:

  ACPI Warning (nspredef-0949): \_SB_.PCI0.PEG4._PRT: Return Package type mismatch at index 0 - found Integer, expected Package [20090320]

Signed-off-by: Linus Torvalds <torvalds@linux-foundation.org>
2009-05-02 11:48:37 -07:00
..
accommon.h ACPICA: hide private headers 2009-01-09 03:31:01 -05:00
acconfig.h ACPICA: hide private headers 2009-01-09 03:31:01 -05:00
acdebug.h ACPICA: hide private headers 2009-01-09 03:31:01 -05:00
acdispat.h ACPICA: hide private headers 2009-01-09 03:31:01 -05:00
acevents.h ACPICA: hide private headers 2009-01-09 03:31:01 -05:00
acglobal.h ACPICA: New: I/O port protection 2009-03-27 12:11:03 -04:00
achware.h ACPICA: New: I/O port protection 2009-03-27 12:11:03 -04:00
acinterp.h ACPICA: hide private headers 2009-01-09 03:31:01 -05:00
aclocal.h ACPICA: Clear PM register write-only bits on reading 2009-03-27 12:11:03 -04:00
acmacros.h ACPICA: Remove ACPI_GET_OBJECT_TYPE macro 2009-03-26 16:38:27 -04:00
acnamesp.h ACPICA: hide private headers 2009-01-09 03:31:01 -05:00
acobject.h ACPICA: Remove obsolete acpi_os_validate_address interface 2009-03-27 12:11:03 -04:00
acopcode.h ACPICA: hide private headers 2009-01-09 03:31:01 -05:00
acparser.h ACPICA: hide private headers 2009-01-09 03:31:01 -05:00
acpredef.h ACPICA: Update comments in module header 2009-03-26 16:38:23 -04:00
acresrc.h ACPICA: hide private headers 2009-01-09 03:31:01 -05:00
acstruct.h ACPICA: hide private headers 2009-01-09 03:31:01 -05:00
actables.h ACPICA: Fix AcpiWalkNamespace race condition with table unload 2009-03-27 12:11:02 -04:00
acutils.h ACPICA: Fix AcpiWalkNamespace race condition with table unload 2009-03-27 12:11:02 -04:00
amlcode.h ACPICA: hide private headers 2009-01-09 03:31:01 -05:00
amlresrc.h ACPICA: hide private headers 2009-01-09 03:31:01 -05:00
dsfield.c ACPICA: hide private headers 2009-01-09 03:31:01 -05:00
dsinit.c ACPICA: Fix AcpiWalkNamespace race condition with table unload 2009-03-27 12:11:02 -04:00
dsmethod.c ACPICA: hide private headers 2009-01-09 03:31:01 -05:00
dsmthdat.c ACPICA: Remove ACPI_GET_OBJECT_TYPE macro 2009-03-26 16:38:27 -04:00
dsobject.c ACPICA: Remove ACPI_GET_OBJECT_TYPE macro 2009-03-26 16:38:27 -04:00
dsopcode.c ACPICA: Remove obsolete acpi_os_validate_address interface 2009-03-27 12:11:03 -04:00
dsutils.c ACPICA: Remove ACPI_GET_OBJECT_TYPE macro 2009-03-26 16:38:27 -04:00
dswexec.c ACPICA: Remove ACPI_GET_OBJECT_TYPE macro 2009-03-26 16:38:27 -04:00
dswload.c ACPICA: hide private headers 2009-01-09 03:31:01 -05:00
dswscope.c ACPICA: hide private headers 2009-01-09 03:31:01 -05:00
dswstate.c ACPICA: hide private headers 2009-01-09 03:31:01 -05:00
evevent.c ACPICA: Add manifest constants for bit register values 2009-03-27 12:11:01 -04:00
evgpe.c ACPICA: Formatting update - no functional changes 2009-03-27 12:11:02 -04:00
evgpeblk.c ACPICA: Formatting update - no functional changes 2009-03-27 12:11:02 -04:00
evmisc.c ACPICA: Formatting update - no functional changes 2009-03-27 12:11:02 -04:00
evregion.c ACPICA: Formatting update - no functional changes 2009-03-27 12:11:02 -04:00
evrgnini.c ACPICA: Formatting update - no functional changes 2009-03-27 12:11:02 -04:00
evsci.c ACPICA: hide private headers 2009-01-09 03:31:01 -05:00
evxface.c ACPICA: Formatting update - no functional changes 2009-03-27 12:11:02 -04:00
evxfevnt.c ACPICA: Add manifest constants for bit register values 2009-03-27 12:11:01 -04:00
evxfregn.c ACPICA: Formatting update - no functional changes 2009-03-27 12:11:02 -04:00
exconfig.c ACPICA: Fix AcpiWalkNamespace race condition with table unload 2009-03-27 12:11:02 -04:00
exconvrt.c ACPICA: Remove ACPI_GET_OBJECT_TYPE macro 2009-03-26 16:38:27 -04:00
excreate.c ACPICA: hide private headers 2009-01-09 03:31:01 -05:00
exdump.c ACPICA: Remove unused code, no functional change 2009-03-27 12:11:04 -04:00
exfield.c ACPICA: Remove ACPI_GET_OBJECT_TYPE macro 2009-03-26 16:38:27 -04:00
exfldio.c ACPICA: Remove obsolete acpi_os_validate_address interface 2009-03-27 12:11:03 -04:00
exmisc.c ACPICA: Remove ACPI_GET_OBJECT_TYPE macro 2009-03-26 16:38:27 -04:00
exmutex.c ACPICA: hide private headers 2009-01-09 03:31:01 -05:00
exnames.c ACPICA: hide private headers 2009-01-09 03:31:01 -05:00
exoparg1.c ACPICA: Remove ACPI_GET_OBJECT_TYPE macro 2009-03-26 16:38:27 -04:00
exoparg2.c ACPICA: Remove ACPI_GET_OBJECT_TYPE macro 2009-03-26 16:38:27 -04:00
exoparg3.c ACPICA: Remove ACPI_GET_OBJECT_TYPE macro 2009-03-26 16:38:27 -04:00
exoparg6.c ACPICA: hide private headers 2009-01-09 03:31:01 -05:00
exprep.c ACPICA: Remove ACPI_GET_OBJECT_TYPE macro 2009-03-26 16:38:27 -04:00
exregion.c ACPICA: New: I/O port protection 2009-03-27 12:11:03 -04:00
exresnte.c ACPICA: Remove ACPI_GET_OBJECT_TYPE macro 2009-03-26 16:38:27 -04:00
exresolv.c ACPICA: Remove ACPI_GET_OBJECT_TYPE macro 2009-03-26 16:38:27 -04:00
exresop.c ACPICA: Remove ACPI_GET_OBJECT_TYPE macro 2009-03-26 16:38:27 -04:00
exstore.c ACPICA: Remove ACPI_GET_OBJECT_TYPE macro 2009-03-26 16:38:27 -04:00
exstoren.c ACPICA: Remove ACPI_GET_OBJECT_TYPE macro 2009-03-26 16:38:27 -04:00
exstorob.c ACPICA: hide private headers 2009-01-09 03:31:01 -05:00
exsystem.c ACPICA: hide private headers 2009-01-09 03:31:01 -05:00
exutils.c ACPICA: Remove ACPI_GET_OBJECT_TYPE macro 2009-03-26 16:38:27 -04:00
hwacpi.c ACPICA: New: I/O port protection 2009-03-27 12:11:03 -04:00
hwgpe.c ACPICA: Formatting update - no functional changes 2009-03-27 12:11:02 -04:00
hwregs.c ACPICA: Clear PM register write-only bits on reading 2009-03-27 12:11:03 -04:00
hwsleep.c ACPI: Disable _GTS and _BFS support by default 2009-04-17 23:32:20 -04:00
hwtimer.c ACPICA: hide private headers 2009-01-09 03:31:01 -05:00
hwvalid.c Revert "ACPICA: delete check for AML access to port 0x81-83" 2009-04-24 00:32:52 -04:00
hwxface.c ACPICA: New: I/O port protection 2009-03-27 12:11:03 -04:00
Makefile ACPICA: New: I/O port protection 2009-03-27 12:11:03 -04:00
nsaccess.c ACPICA: Formatting update - no functional changes 2009-03-27 12:11:02 -04:00
nsalloc.c ACPICA: Formatting update - no functional changes 2009-03-27 12:11:02 -04:00
nsdump.c ACPICA: Formatting update - no functional changes 2009-03-27 12:11:02 -04:00
nsdumpdv.c ACPICA: hide private headers 2009-01-09 03:31:01 -05:00
nseval.c ACPICA: Debug output: decrease verbosity of DB_INFO debug level 2009-03-26 16:38:29 -04:00
nsinit.c ACPICA: Formatting update - no functional changes 2009-03-27 12:11:02 -04:00
nsload.c ACPICA: Formatting update - no functional changes 2009-03-27 12:11:02 -04:00
nsnames.c ACPICA: hide private headers 2009-01-09 03:31:01 -05:00
nsobject.c ACPICA: Remove ACPI_GET_OBJECT_TYPE macro 2009-03-26 16:38:27 -04:00
nsparse.c ACPICA: Formatting update - no functional changes 2009-03-27 12:11:02 -04:00
nspredef.c ACPICA: Fix index value in package warning message 2009-03-27 12:11:06 -04:00
nssearch.c ACPICA: Formatting update - no functional changes 2009-03-27 12:11:02 -04:00
nsutils.c ACPICA: Formatting update - no functional changes 2009-03-27 12:11:02 -04:00
nswalk.c ACPICA: Formatting update - no functional changes 2009-03-27 12:11:02 -04:00
nsxfeval.c hwmon: Add Asus ATK0110 support 2009-04-07 15:32:59 +02:00
nsxfname.c ACPICA: hide private headers 2009-01-09 03:31:01 -05:00
nsxfobj.c ACPICA: hide private headers 2009-01-09 03:31:01 -05:00
psargs.c ACPICA: hide private headers 2009-01-09 03:31:01 -05:00
psloop.c ACPICA: hide private headers 2009-01-09 03:31:01 -05:00
psopcode.c ACPICA: hide private headers 2009-01-09 03:31:01 -05:00
psparse.c ACPICA: hide private headers 2009-01-09 03:31:01 -05:00
psscope.c ACPICA: hide private headers 2009-01-09 03:31:01 -05:00
pstree.c ACPICA: hide private headers 2009-01-09 03:31:01 -05:00
psutils.c ACPICA: hide private headers 2009-01-09 03:31:01 -05:00
pswalk.c ACPICA: hide private headers 2009-01-09 03:31:01 -05:00
psxface.c ACPICA: hide private headers 2009-01-09 03:31:01 -05:00
rsaddr.c ACPICA: hide private headers 2009-01-09 03:31:01 -05:00
rscalc.c acpica: validate package element more carefully in acpi_rs_get_pci_routing_table_length 2009-05-02 11:48:37 -07:00
rscreate.c ACPI: Revert conflicting workaround for BIOS w/ mangled PRT entries 2009-04-11 00:57:21 -04:00
rsdump.c ACPICA: hide private headers 2009-01-09 03:31:01 -05:00
rsinfo.c ACPICA: hide private headers 2009-01-09 03:31:01 -05:00
rsio.c ACPICA: hide private headers 2009-01-09 03:31:01 -05:00
rsirq.c ACPICA: hide private headers 2009-01-09 03:31:01 -05:00
rslist.c ACPICA: hide private headers 2009-01-09 03:31:01 -05:00
rsmemory.c ACPICA: hide private headers 2009-01-09 03:31:01 -05:00
rsmisc.c ACPICA: hide private headers 2009-01-09 03:31:01 -05:00
rsutils.c ACPICA: hide private headers 2009-01-09 03:31:01 -05:00
rsxface.c ACPICA: hide private headers 2009-01-09 03:31:01 -05:00
tbfadt.c ACPICA: FADT: Favor 32-bit FACS and DSDT addresses 2009-03-27 12:11:05 -04:00
tbfind.c ACPICA: hide private headers 2009-01-09 03:31:01 -05:00
tbinstal.c ACPICA: Fix AcpiWalkNamespace race condition with table unload 2009-03-27 12:11:02 -04:00
tbutils.c ACPICA: Update table header print function 2009-03-26 16:38:32 -04:00
tbxface.c Merge branch 'linus' into release 2009-04-05 02:14:15 -04:00
tbxfroot.c ACPICA: Formatting update - no functional changes 2009-03-26 16:38:29 -04:00
utalloc.c ACPICA: hide private headers 2009-01-09 03:31:01 -05:00
utcopy.c ACPICA: Formatting update - no functional changes 2009-03-26 16:38:29 -04:00
utdebug.c ACPICA: hide private headers 2009-01-09 03:31:01 -05:00
utdelete.c ACPICA: Remove ACPI_GET_OBJECT_TYPE macro 2009-03-26 16:38:27 -04:00
uteval.c ACPICA: New: I/O port protection 2009-03-27 12:11:03 -04:00
utglobal.c ACPICA: New: I/O port protection 2009-03-27 12:11:03 -04:00
utinit.c ACPICA: hide private headers 2009-01-09 03:31:01 -05:00
utlock.c ACPICA: Fix AcpiWalkNamespace race condition with table unload 2009-03-27 12:11:02 -04:00
utmath.c ACPICA: hide private headers 2009-01-09 03:31:01 -05:00
utmisc.c ACPICA: Remove ACPI_GET_OBJECT_TYPE macro 2009-03-26 16:38:27 -04:00
utmutex.c ACPICA: Fix AcpiWalkNamespace race condition with table unload 2009-03-27 12:11:02 -04:00
utobject.c ACPICA: Debug output: decrease verbosity of DB_INFO debug level 2009-03-26 16:38:29 -04:00
utresrc.c ACPICA: hide private headers 2009-01-09 03:31:01 -05:00
utstate.c ACPICA: hide private headers 2009-01-09 03:31:01 -05:00
utxface.c ACPICA: hide private headers 2009-01-09 03:31:01 -05:00