Debian Patches

Status for acpica-unix/20200925-8

Patch Description Author Forwarded Bugs Origin Last update
0031-Support-STAO-in-a-big-endian-world.patch [PATCH 31/40] Support STAO in a big-endian world Al Stone <ahs3@redhat.com> no 2020-09-28
0032-Support-SLIC-and-MSDM-in-a-big-endian-world.patch [PATCH 32/40] Support SLIC and MSDM in a big-endian world Al Stone <ahs3@redhat.com> no 2020-09-28
0033-Support-MCFG-in-a-big-endian-world.patch [PATCH 33/40] Support MCFG in a big-endian world Al Stone <ahs3@redhat.com> no 2020-09-28
0034-Support-LPIT-in-a-big-endian-world.patch [PATCH 34/40] Support LPIT in a big-endian world Al Stone <ahs3@redhat.com> no 2020-09-28
0035-Support-PMTT-in-a-big-endian-world.patch [PATCH 35/40] Support PMTT in a big-endian world Al Stone <ahs3@redhat.com> no 2020-09-28
0036-Support-IORT-in-a-big-endian-world.patch [PATCH 36/40] Support IORT in a big-endian world Al Stone <ahs3@redhat.com> no 2020-09-30
0037-Support-IVRS-in-a-big-endian-world.patch [PATCH 37/40] Support IVRS in a big-endian world Al Stone <ahs3@redhat.com> no 2020-09-30
0038-Support-TPM2-in-a-big-endian-world.patch [PATCH 38/40] Support TPM2 in a big-endian world Al Stone <ahs3@redhat.com> no 2020-09-30
fix_ftbfs_debian-kfreebsd.patch Hi,

the current version fails to build on GNU/kFreeBSD.

It needs small tweak to define uintptr_t, see below.

It would also be nice if you can ask upstream
to include this change.

Thanks in advance

Petr
no
0001-Add-in-basic-infrastructure-for-big-endian-support.patch [PATCH 01/40] Add in basic infrastructure for big-endian support
This adds in some basic functions -- AcpiUtReadUint32(), for example,
to read a UINT32 value in little-endian form and return it in host-native
format -- along with AcpiUtWriteUint() that writes out an integer in
host-native format as a little-endian value.

But, to do that, I'm adding the functions in a new file: utendian.c. So,
the header files need fixing, and the makefiles need to be sure to compile
the new code.

However, this sets things up for the future, where endian-aware code can
be added as the need is uncovered. For now, these functions cover all of
the cases I know about.
Al Stone <ahs3@redhat.com> no 2020-10-15
0002-Modify-utility-functions-to-be-endian-agnostic.patch [PATCH 02/40] Modify utility functions to be endian-agnostic
All of the modifications here use the big-endian code previously added
(see utendian.c) to make themselves endian-agnostic; i.e., that the code
does not need to change further to work on both big- and little-endian
machines.

These particular files were changed to handle the reading and writing
of files (the length is often embedded in the binary stream), and to
handle the reading and writing of integer values. The common cases are
to "read" a 32-bit unsigned int in little-endian format, but convert it
to host-native, and to write a byte, word, double word or quad word value
as little-endian, regardless of host-native format.
Al Stone <ahs3@redhat.com> no 2020-09-18
0003-Always-display-table-header-content-in-human-readabl.patch [PATCH 03/40] Always display table header content in human-readable form

When comparing two binary data tables, little-endian values are read
from each table header and printed out. Make sure they show up in a
form that makes sense to humans.
Al Stone <ahs3@redhat.com> no 2020-09-18
0004-Re-enable-support-for-big-endian-machines.patch [PATCH 04/40] Re-enable support for big-endian machines
First, disable the big-endian check and fail. Then, make sure the
namespace gets initialized properly (NB: needed even if we are only
compiling/disassembling data tables).
Al Stone <ahs3@redhat.com> no 2020-09-16
0005-Support-MADT-aka-APIC-in-a-big-endian-world.patch [PATCH 05/40] Support MADT (aka APIC) in a big-endian world Al Stone <ahs3@redhat.com> no 2020-10-15
0006-Support-ASF-tables-in-a-big-endian-world.patch [PATCH 06/40] Support ASF! tables in a big-endian world
Read the table length properly and it all works right for big-endian.
Al Stone <ahs3@redhat.com> no 2020-09-18
0007-Support-CPEP-tables-in-a-big-endian-world.patch [PATCH 07/40] Support CPEP tables in a big-endian world Al Stone <ahs3@redhat.com> no 2020-09-18
0008-Support-DBG2-table-in-a-big-endian-world.patch [PATCH 08/40] Support DBG2 table in a big-endian world Al Stone <ahs3@redhat.com> no 2020-09-19
0009-Support-DMAR-in-a-big-endian-world.patch [PATCH 09/40] Support DMAR in a big-endian world Al Stone <ahs3@redhat.com> no 2020-09-19
0010-Support-DRTM-in-a-big-endian-world.patch [PATCH 10/40] Support DRTM in a big-endian world Al Stone <ahs3@redhat.com> no 2020-09-19
0011-Support-EINJ-in-a-big-endian-world.patch [PATCH 11/40] Support EINJ in a big-endian world Al Stone <ahs3@redhat.com> no 2020-09-19
0012-Support-ERST-in-a-big-endian-world.patch [PATCH 12/40] Support ERST in a big-endian world Al Stone <ahs3@redhat.com> no 2020-09-19
0013-Support-FADT-aka-FACP-in-a-big-endian-world.patch [PATCH 13/40] Support FADT (aka, FACP) in a big-endian world Al Stone <ahs3@redhat.com> no 2020-09-20
0014-Support-most-FPDTs-in-a-big-endian-world.patch [PATCH 14/40] Support most FPDTs in a big-endian world
the little-endian version.
Al Stone <ahs3@redhat.com> no 2020-09-22
0015-Support-GTDT-in-a-big-endian-world.patch [PATCH 15/40] Support GTDT in a big-endian world Al Stone <ahs3@redhat.com> no 2020-09-22
0016-Support-HEST-in-a-big-endian-world.patch [PATCH 16/40] Support HEST in a big-endian world Al Stone <ahs3@redhat.com> no 2020-09-23
0017-Support-RSDT-RSD-PTR-in-a-big-endian-world.patch [PATCH 17/40] Support RSDT ('RSD PTR') in a big-endian world Al Stone <ahs3@redhat.com> no 2020-09-23
0018-Support-XSDT-in-a-big-endian-world.patch [PATCH 18/40] Support XSDT in a big-endian world Al Stone <ahs3@redhat.com> no 2020-09-23
0019-Support-SRAT-in-a-big-endian-world.patch [PATCH 19/40] Support SRAT in a big-endian world Al Stone <ahs3@redhat.com> no 2020-09-23
0020-Support-SLIT-in-a-big-endian-world.patch [PATCH 20/40] Support SLIT in a big-endian world Al Stone <ahs3@redhat.com> no 2020-09-23
0021-Support-MSCT-in-a-big-endian-world.patch [PATCH 21/40] Support MSCT in a big-endian world Al Stone <ahs3@redhat.com> no 2020-09-23
0022-Support-MPST-in-a-big-endian-world.patch [PATCH 22/40] Support MPST in a big-endian world Al Stone <ahs3@redhat.com> no 2020-09-23
0023-Support-NFIT-in-a-big-endian-world.patch [PATCH 23/40] Support NFIT in a big-endian world Al Stone <ahs3@redhat.com> no 2020-09-24
0024-Support-SDEV-in-a-big-endian-world.patch [PATCH 24/40] Support SDEV in a big-endian world Al Stone <ahs3@redhat.com> no 2020-09-25
0025-Support-HMAT-in-a-big-endian-world.patch [PATCH 25/40] Support HMAT in a big-endian world Al Stone <ahs3@redhat.com> no 2020-09-25
0026-Support-PDTT-in-a-big-endian-world.patch [PATCH 26/40] Support PDTT in a big-endian world Al Stone <ahs3@redhat.com> no 2020-09-25
0027-Support-PPTT-in-a-big-endian-world.patch [PATCH 27/40] Support PPTT in a big-endian world Al Stone <ahs3@redhat.com> no 2020-09-25
0028-Support-PCCT-in-a-big-endian-world.patch [PATCH 28/40] Support PCCT in a big-endian world Al Stone <ahs3@redhat.com> no 2020-09-25
0029-Support-WDAT-in-a-big-endian-world.patch [PATCH 29/40] Support WDAT in a big-endian world Al Stone <ahs3@redhat.com> no 2020-09-25
0030-Support-TCPA-in-a-big-endian-world.patch [PATCH 30/40] Support TCPA in a big-endian world Al Stone <ahs3@redhat.com> no 2020-09-27
0039-Add-partial-big-endian-support-for-WPBT-tables.patch [PATCH 1/5] Add partial big-endian support for WPBT tables
There's some weirdness here that at present does not warrant
further investigation; this is just a really low priority table.
Al Stone <ahs3@redhat.com> no 2020-09-30
0040-Support-DSDT-SSDT-in-a-big-endian-world.patch [PATCH 2/5] Support DSDT/SSDT in a big-endian world
are treated differently during compilation and disassembly so each of
the resource types had code that needed to be touched directly.

In general, however, just reading or writing individual AML opcodes
wasn't that much of a change, and most of it was on the codegen side.
Al Stone <ahs3@redhat.com> no 2020-10-15
0041-Support-MTMR-in-a-big-endian-world.patch [PATCH 3/5] Support MTMR in a big-endian world Al Stone <ahs3@redhat.com> no 2020-10-16
0042-Support-VRTC-in-a-big-endian-world.patch [PATCH 4/5] Support VRTC in a big-endian world Al Stone <ahs3@redhat.com> no 2020-10-19
0043-Support-S3PT-in-a-big-endian-world.patch [PATCH 5/5] Support S3PT in a big-endian world Al Stone <ahs3@redhat.com> no 2020-10-19
0044-Correct-an-endian-ness-problem-when-converting-ASL-t.patch [PATCH] Correct an endian-ness problem when converting ASL to ASL+ Al Stone <ahs3@redhat.com> no 2020-10-27
0045-Correct-a-couple-of-endianness-issues-previously-uns.patch [PATCH] Correct a couple of endianness issues previously unseen
Just odds and ends of some resource types and ASL analysis
Al Stone <ahs3@redhat.com> no 2020-10-28
unaligned.patch Patch carried over from the prior iasl package and updated. This allows
for builds on systems requiring aligned memory access. Please see
http://lists.acpica.org/pipermail/devel/2010-July/000159.html. Resolves
BZ#865013 and BZ#856856.
--

Add more platforms to the list of the ones requiring aligned memory access.
Also fix callsites where wrong assumptions where made in terms of aligment.
no
fix_ftbfs_debian-hurd.patch Fix FTBFS on hurd-i386. no
add-testing.patch =================================================================== no
OPT_LDFLAGS.patch =================================================================== no
int-format.patch Use proper integer formatting Al Stone <ahs3@redhat.com> no
f23-harden.patch Introduce build hardening flags for f23 Al Stone <ahs3@redhat.com> no
template.patch Add in a needed parameter for a test file template Al Stone <ahs3@redhat.com> no
arm7hl.patch =================================================================== no
cve-2017-13693.patch [PATCH] acpi: acpica: fix acpi operand cache leak in dswstate.c
I found an ACPI cache leak in ACPI early termination and boot continuing case.

When early termination occurs due to malicious ACPI table, Linux kernel
terminates ACPI function and continues to boot process. While kernel terminates
ACPI function, kmem_cache_destroy() reports Acpi-Operand cache leak.

Boot log of ACPI operand cache leak is as follows:
>[ 0.585957] ACPI: Added _OSI(Module Device)
>[ 0.587218] ACPI: Added _OSI(Processor Device)
>[ 0.588530] ACPI: Added _OSI(3.0 _SCP Extensions)
>[ 0.589790] ACPI: Added _OSI(Processor Aggregator Device)
>[ 0.591534] ACPI Error: Illegal I/O port address/length above 64K: C806E00000004002/0x2 (20170303/hwvalid-155)
>[ 0.594351] ACPI Exception: AE_LIMIT, Unable to initialize fixed events (20170303/evevent-88)
>[ 0.597858] ACPI: Unable to start the ACPI Interpreter
>[ 0.599162] ACPI Error: Could not remove SCI handler (20170303/evmisc-281)
>[ 0.601836] kmem_cache_destroy Acpi-Operand: Slab cache still has objects
>[ 0.603556] CPU: 0 PID: 1 Comm: swapper/0 Not tainted 4.12.0-rc5 #26
>[ 0.605159] Hardware name: innotek GmbH VirtualBox/VirtualBox, BIOS VirtualBox 12/01/2006
>[ 0.609177] Call Trace:
>[ 0.610063] ? dump_stack+0x5c/0x81
>[ 0.611118] ? kmem_cache_destroy+0x1aa/0x1c0
>[ 0.612632] ? acpi_sleep_proc_init+0x27/0x27
>[ 0.613906] ? acpi_os_delete_cache+0xa/0x10
>[ 0.617986] ? acpi_ut_delete_caches+0x3f/0x7b
>[ 0.619293] ? acpi_terminate+0xa/0x14
>[ 0.620394] ? acpi_init+0x2af/0x34f
>[ 0.621616] ? __class_create+0x4c/0x80
>[ 0.623412] ? video_setup+0x7f/0x7f
>[ 0.624585] ? acpi_sleep_proc_init+0x27/0x27
>[ 0.625861] ? do_one_initcall+0x4e/0x1a0
>[ 0.627513] ? kernel_init_freeable+0x19e/0x21f
>[ 0.628972] ? rest_init+0x80/0x80
>[ 0.630043] ? kernel_init+0xa/0x100
>[ 0.631084] ? ret_from_fork+0x25/0x30
>[ 0.633343] vgaarb: loaded
>[ 0.635036] EDAC MC: Ver: 3.0.0
>[ 0.638601] PCI: Probing PCI hardware
>[ 0.639833] PCI host bridge to bus 0000:00
>[ 0.641031] pci_bus 0000:00: root bus resource [io 0x0000-0xffff]
> ... Continue to boot and log is omitted ...

I analyzed this memory leak in detail and found acpi_ds_obj_stack_pop_and_
delete() function miscalculated the top of the stack. acpi_ds_obj_stack_push()
function uses walk_state->operand_index for start position of the top, but
acpi_ds_obj_stack_pop_and_delete() function considers index 0 for it.
Therefore, this causes acpi operand memory leak.

This cache leak causes a security threat because an old kernel (<= 4.9) shows
memory locations of kernel functions in stack dump. Some malicious users
could use this information to neutralize kernel ASLR.

I made a patch to fix ACPI operand cache leak.
Seunghun Han <kkamagui@gmail.com> no 2017-07-19
cve-2017-13694.patch [PATCH] acpi: acpica: fix acpi parse and parseext cache leaks
I'm Seunghun Han, and I work for National Security Research Institute of
South Korea.

I have been doing a research on ACPI and found an ACPI cache leak in ACPI
early abort cases.

Boot log of ACPI cache leak is as follows:
[ 0.352414] ACPI: Added _OSI(Module Device)
[ 0.353182] ACPI: Added _OSI(Processor Device)
[ 0.353182] ACPI: Added _OSI(3.0 _SCP Extensions)
[ 0.353182] ACPI: Added _OSI(Processor Aggregator Device)
[ 0.356028] ACPI: Unable to start the ACPI Interpreter
[ 0.356799] ACPI Error: Could not remove SCI handler (20170303/evmisc-281)
[ 0.360215] kmem_cache_destroy Acpi-State: Slab cache still has objects
[ 0.360648] CPU: 0 PID: 1 Comm: swapper/0 Tainted: G W
4.12.0-rc4-next-20170608+ #10
[ 0.361273] Hardware name: innotek GmbH VirtualBox/VirtualBox, BIOS
VirtualBox 12/01/2006
[ 0.361873] Call Trace:
[ 0.362243] ? dump_stack+0x5c/0x81
[ 0.362591] ? kmem_cache_destroy+0x1aa/0x1c0
[ 0.362944] ? acpi_sleep_proc_init+0x27/0x27
[ 0.363296] ? acpi_os_delete_cache+0xa/0x10
[ 0.363646] ? acpi_ut_delete_caches+0x6d/0x7b
[ 0.364000] ? acpi_terminate+0xa/0x14
[ 0.364000] ? acpi_init+0x2af/0x34f
[ 0.364000] ? __class_create+0x4c/0x80
[ 0.364000] ? video_setup+0x7f/0x7f
[ 0.364000] ? acpi_sleep_proc_init+0x27/0x27
[ 0.364000] ? do_one_initcall+0x4e/0x1a0
[ 0.364000] ? kernel_init_freeable+0x189/0x20a
[ 0.364000] ? rest_init+0xc0/0xc0
[ 0.364000] ? kernel_init+0xa/0x100
[ 0.364000] ? ret_from_fork+0x25/0x30

I analyzed this memory leak in detail. I found that Acpi-State cache and
Acpi-Parse cache were merged because the size of cache objects was same
slab cache size.

I finally found Acpi-Parse cache and Acpi-ParseExt cache were leaked
using SLAB_NEVER_MERGE flag in kmem_cache_create() function.

Real ACPI cache leak point is as follows:
[ 0.360101] ACPI: Added _OSI(Module Device)
[ 0.360101] ACPI: Added _OSI(Processor Device)
[ 0.360101] ACPI: Added _OSI(3.0 _SCP Extensions)
[ 0.361043] ACPI: Added _OSI(Processor Aggregator Device)
[ 0.364016] ACPI: Unable to start the ACPI Interpreter
[ 0.365061] ACPI Error: Could not remove SCI handler (20170303/evmisc-281)
[ 0.368174] kmem_cache_destroy Acpi-Parse: Slab cache still has objects
[ 0.369332] CPU: 1 PID: 1 Comm: swapper/0 Tainted: G W
4.12.0-rc4-next-20170608+ #8
[ 0.371256] Hardware name: innotek GmbH VirtualBox/VirtualBox, BIOS
VirtualBox 12/01/2006
[ 0.372000] Call Trace:
[ 0.372000] ? dump_stack+0x5c/0x81
[ 0.372000] ? kmem_cache_destroy+0x1aa/0x1c0
[ 0.372000] ? acpi_sleep_proc_init+0x27/0x27
[ 0.372000] ? acpi_os_delete_cache+0xa/0x10
[ 0.372000] ? acpi_ut_delete_caches+0x56/0x7b
[ 0.372000] ? acpi_terminate+0xa/0x14
[ 0.372000] ? acpi_init+0x2af/0x34f
[ 0.372000] ? __class_create+0x4c/0x80
[ 0.372000] ? video_setup+0x7f/0x7f
[ 0.372000] ? acpi_sleep_proc_init+0x27/0x27
[ 0.372000] ? do_one_initcall+0x4e/0x1a0
[ 0.372000] ? kernel_init_freeable+0x189/0x20a
[ 0.372000] ? rest_init+0xc0/0xc0
[ 0.372000] ? kernel_init+0xa/0x100
[ 0.372000] ? ret_from_fork+0x25/0x30
[ 0.388039] kmem_cache_destroy Acpi-ParseExt: Slab cache still has objects
[ 0.389063] CPU: 1 PID: 1 Comm: swapper/0 Tainted: G W
4.12.0-rc4-next-20170608+ #8
[ 0.390557] Hardware name: innotek GmbH VirtualBox/VirtualBox, BIOS
VirtualBox 12/01/2006
[ 0.392000] Call Trace:
[ 0.392000] ? dump_stack+0x5c/0x81
[ 0.392000] ? kmem_cache_destroy+0x1aa/0x1c0
[ 0.392000] ? acpi_sleep_proc_init+0x27/0x27
[ 0.392000] ? acpi_os_delete_cache+0xa/0x10
[ 0.392000] ? acpi_ut_delete_caches+0x6d/0x7b
[ 0.392000] ? acpi_terminate+0xa/0x14
[ 0.392000] ? acpi_init+0x2af/0x34f
[ 0.392000] ? __class_create+0x4c/0x80
[ 0.392000] ? video_setup+0x7f/0x7f
[ 0.392000] ? acpi_sleep_proc_init+0x27/0x27
[ 0.392000] ? do_one_initcall+0x4e/0x1a0
[ 0.392000] ? kernel_init_freeable+0x189/0x20a
[ 0.392000] ? rest_init+0xc0/0xc0
[ 0.392000] ? kernel_init+0xa/0x100
[ 0.392000] ? ret_from_fork+0x25/0x30

When early abort is occurred due to invalid ACPI information, Linux kernel
terminates ACPI by calling acpi_terminate() function. The function calls
acpi_ut_delete_caches() function to delete local caches (acpi_gbl_namespace_
cache, state_cache, operand_cache, ps_node_cache, ps_node_ext_cache).

But the deletion codes in acpi_ut_delete_caches() function only delete
slab caches using kmem_cache_destroy() function, therefore the cache
objects should be flushed before acpi_ut_delete_caches() function.

Acpi-Parse cache and Acpi-ParseExt cache are used in an AML parse
function, acpi_ps_parse_loop(). The function should have flush codes to
handle an error state due to invalid AML codes.

This cache leak has a security threat because an old kernel (<= 4.9) shows
memory locations of kernel functions in stack dump. Some malicious users
could use this information to neutralize kernel ASLR.

To fix ACPI cache leak for enhancing security, I made a patch which has
flush codes in acpi_ps_parse_loop() function.

I hope that this patch improves the security of Linux kernel.

Thank you.
Seunghun Han <kkamagui@gmail.com> no 2017-06-23
cve-2017-13695.patch [PATCH] acpi: acpica: fix acpi operand cache leak in nseval.c
I found an ACPI cache leak in ACPI early termination and boot continuing case.

When early termination occurs due to malicious ACPI table, Linux kernel
terminates ACPI function and continues to boot process. While kernel terminates
ACPI function, kmem_cache_destroy() reports Acpi-Operand cache leak.

Boot log of ACPI operand cache leak is as follows:
>[ 0.464168] ACPI: Added _OSI(Module Device)
>[ 0.467022] ACPI: Added _OSI(Processor Device)
>[ 0.469376] ACPI: Added _OSI(3.0 _SCP Extensions)
>[ 0.471647] ACPI: Added _OSI(Processor Aggregator Device)
>[ 0.477997] ACPI Error: Null stack entry at ffff880215c0aad8 (20170303/exresop-174)
>[ 0.482706] ACPI Exception: AE_AML_INTERNAL, While resolving operands for [OpcodeName unavailable] (20170303/dswexec-461)
>[ 0.487503] ACPI Error: Method parse/execution failed [\DBG] (Node ffff88021710ab40), AE_AML_INTERNAL (20170303/psparse-543)
>[ 0.492136] ACPI Error: Method parse/execution failed [\_SB._INI] (Node ffff88021710a618), AE_AML_INTERNAL (20170303/psparse-543)
>[ 0.497683] ACPI: Interpreter enabled
>[ 0.499385] ACPI: (supports S0)
>[ 0.501151] ACPI: Using IOAPIC for interrupt routing
>[ 0.503342] ACPI Error: Null stack entry at ffff880215c0aad8 (20170303/exresop-174)
>[ 0.506522] ACPI Exception: AE_AML_INTERNAL, While resolving operands for [OpcodeName unavailable] (20170303/dswexec-461)
>[ 0.510463] ACPI Error: Method parse/execution failed [\DBG] (Node ffff88021710ab40), AE_AML_INTERNAL (20170303/psparse-543)
>[ 0.514477] ACPI Error: Method parse/execution failed [\_PIC] (Node ffff88021710ab18), AE_AML_INTERNAL (20170303/psparse-543)
>[ 0.518867] ACPI Exception: AE_AML_INTERNAL, Evaluating _PIC (20170303/bus-991)
>[ 0.522384] kmem_cache_destroy Acpi-Operand: Slab cache still has objects
>[ 0.524597] CPU: 1 PID: 1 Comm: swapper/0 Not tainted 4.12.0-rc5 #26
>[ 0.526795] Hardware name: innotek GmbH VirtualBox/VirtualBox, BIOS VirtualBox 12/01/2006
>[ 0.529668] Call Trace:
>[ 0.530811] ? dump_stack+0x5c/0x81
>[ 0.532240] ? kmem_cache_destroy+0x1aa/0x1c0
>[ 0.533905] ? acpi_os_delete_cache+0xa/0x10
>[ 0.535497] ? acpi_ut_delete_caches+0x3f/0x7b
>[ 0.537237] ? acpi_terminate+0xa/0x14
>[ 0.538701] ? acpi_init+0x2af/0x34f
>[ 0.540008] ? acpi_sleep_proc_init+0x27/0x27
>[ 0.541593] ? do_one_initcall+0x4e/0x1a0
>[ 0.543008] ? kernel_init_freeable+0x19e/0x21f
>[ 0.546202] ? rest_init+0x80/0x80
>[ 0.547513] ? kernel_init+0xa/0x100
>[ 0.548817] ? ret_from_fork+0x25/0x30
>[ 0.550587] vgaarb: loaded
>[ 0.551716] EDAC MC: Ver: 3.0.0
>[ 0.553744] PCI: Probing PCI hardware
>[ 0.555038] PCI host bridge to bus 0000:00
> ... Continue to boot and log is omitted ...

I analyzed this memory leak in detail and found AcpiNsEvaluate() function
only removes Info->ReturnObject in AE_CTRL_RETURN_VALUE case. But, when errors
occur, the status value is not AE_CTRL_RETURN_VALUE, and Info->ReturnObject is
also not null. Therefore, this causes acpi operand memory leak.

This cache leak causes a security threat because an old kernel (<= 4.9) shows
memory locations of kernel functions in stack dump. Some malicious users
could use this information to neutralize kernel ASLR.

I made a patch to fix ACPI operand cache leak.
Seunghun Han <kkamagui@gmail.com> no 2017-07-19
str-trunc-warn.patch =================================================================== no
facp.patch [PATCH] Correct DSDT Address field in FACP tables
The FADT allows either the DSDT Address or XDSDT Address field to be
zero. However, the table definition used by the table compiler still
requires the DSDT Address to be non-zero, which is not correct. So,
remove the DT_NON_ZERO flag from the field.
Al Stone <ahs3@ahs3.net> no 2018-12-19
armv7-str-fixes.patch diff -Naur acpica-unix2-20200214.orig/source/include/actypes.h acpica-unix2-20200214/source/include/actypes.h no
dbtest.patch On s390, GCC does not like the string initialization in this case. When
ValueToWrite is initialized this way, GCC tries to copy the entire string
into an ACPI_OBJECT instead of just the pointer (see the use in the call
to memcpy()). So, move the init so GCC recognizes that ValueToWrite is
only a pointer, and not a whole string that needs to be moved.

diff -Naur acpica-unix2-20200214.orig/source/components/debugger/dbtest.c acpica-unix2-20200214/source/components/debugger/dbtest.c
no
ull-32bit.patch diff -Naur acpica-unix2-20200925.orig/source/common/dmtbdump.c acpica-unix2-20200925/source/common/dmtbdump.c no
fix_ftbfs_mips64el.patch =================================================================== no

All known versions for source package 'acpica-unix'

Links