android_kernel_motorola_sm6375/include/acpi
Repository files (latest commit first)
Filename Latest commit message Latest commit date
Ahmed Salem 2ca55d221b ACPICA: Avoid sequence overread in call to strncmp()
[ Upstream commit 64b9dfd0776e9c38d733094859a09f13282ce6f8 ]

ACPICA commit 8b83a8d88dfec59ea147fad35fc6deea8859c58c

ap_get_table_length() checks if tables are valid by
calling ap_is_valid_header(). The latter then calls
ACPI_VALIDATE_RSDP_SIG(Table->Signature).

ap_is_valid_header() accepts struct acpi_table_header as an argument, so
the signature size is always fixed to 4 bytes.

The problem is when the string comparison is between ACPI-defined table
signature and ACPI_SIG_RSDP. Common ACPI table header specifies the
Signature field to be 4 bytes long[1], with the exception of the RSDP
structure whose signature is 8 bytes long "RSD PTR " (including the
trailing blank character)[2]. Calling strncmp(sig, rsdp_sig, 8) would
then result in a sequence overread[3] as sig would be smaller (4 bytes)
than the specified bound (8 bytes).

As a workaround, pass the bound conditionally based on the size of the
signature being passed.

Link: https://uefi.org/specs/ACPI/6.5_A/05_ACPI_Software_Programming_Model.html#system-description-table-header [1]
Link: https://uefi.org/specs/ACPI/6.5_A/05_ACPI_Software_Programming_Model.html#root-system-description-pointer-rsdp-structure [2]
Link: https://gcc.gnu.org/onlinedocs/gcc/Warning-Options.html#index-Wstringop-overread [3]
Link: 8b83a8d8
Signed-off-by: Ahmed Salem <x0rw3ll@gmail.com>
Signed-off-by: Rafael J. Wysocki <rafael.j.wysocki@intel.com>
Link: https://patch.msgid.link/2248233.Mh6RI2rZIc@rjwysocki.net
Signed-off-by: Sasha Levin <sashal@kernel.org>
2025-06-27 11:02:52 +01:00
..
platform ACPICA: Linux: move ACPI_DEBUG_DEFAULT flag out of ifndef 2019-05-13 10:34:21 +02:00
acbuffer.h
acconfig.h ACPICA: Increase total number of possible Owner IDs 2019-08-21 00:00:36 +02:00
acexcep.h ACPICA: Fix exception code class checks 2021-03-04 10:26:14 +01:00
acnames.h
acoutput.h ACPI: use different default debug value than ACPICA 2019-03-25 10:45:59 +01:00
acpi.h
acpi_bus.h ACPI: fix NULL pointer dereference 2021-08-08 09:04:08 +02:00
acpi_drivers.h Linux 5.2-rc4 2019-06-14 14:18:53 -06:00
acpi_io.h ACPI: OSL: Make a W=1 kernel-doc warning go away 2019-06-04 17:21:11 +02:00
acpi_lpat.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 174 2019-05-30 11:26:41 -07:00
acpi_numa.h
acpiosxf.h ACPICA: Fully deploy ACPI_PRINTF_LIKE macro 2019-08-21 00:00:37 +02:00
acpixf.h ACPICA: Allow acpi_any_gpe_status_set() to skip one GPE 2020-04-17 10:50:09 +02:00
acrestyp.h ACPI/ACPICA: Trivial: fix spelling mistakes and fix whitespace formatting 2019-02-24 21:12:01 +01:00
actbl.h ACPICA: Rename nameseg length macro/define for clarity 2019-04-09 11:24:48 +02:00
actbl1.h acpi/hmat: Update acpi_hmat_type enum with ACPI_HMAT_TYPE_PROXIMITY 2019-04-25 21:24:38 +02:00
actbl2.h ACPI/ACPICA: Trivial: fix spelling mistakes and fix whitespace formatting 2019-02-24 21:12:01 +01:00
actbl3.h ACPICA: ACPI 6.3: SRAT: add Generic Affinity Structure subtable 2019-02-18 11:21:11 +01:00
actypes.h ACPICA: Avoid sequence overread in call to strncmp() 2025-06-27 11:02:52 +01:00
acuuid.h
apei.h
battery.h
button.h
cppc_acpi.h ACPI: CPPC: Do not prevent CPPC from working in the future 2022-08-25 11:18:15 +02:00
ghes.h ACPI / APEI: Don't update struct ghes' flags in read/clear estatus 2019-02-07 23:10:45 +01:00
hed.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 428 2019-06-05 17:37:16 +02:00
nfit.h
pcc.h treewide: Replace GPLv2 boilerplate/reference with SPDX - rule 441 2019-06-05 17:37:17 +02:00
pdc_intel.h
processor.h x86: ACPI: fix CPU hotplug deadlock 2020-04-23 10:36:38 +02:00
reboot.h
video.h