Add a new patch to repair big-endian support

Changes in the way length fields were used caused big-endian patches
to no longer behave correctly; this patch repairs that.

Signed-off-by: Al Stone <ahs3@redhat.com>
This commit is contained in:
Al Stone 2018-07-06 18:47:37 -06:00
parent 91417ae923
commit 50c9ebc5aa
2 changed files with 30 additions and 0 deletions

View File

@ -41,6 +41,7 @@ Patch14: cve-2017-13694.patch
Patch15: cve-2017-13695.patch
Patch16: str-trunc-warn.patch
Patch17: ptr-cast.patch
Patch18: aslcodegen.patch
BuildRequires: bison patchutils flex gcc
@ -108,6 +109,7 @@ gzip -dc %{SOURCE1} | tar -x --strip-components=1 -f -
%patch15 -p1 -b .cve-2017-13695
%patch16 -p1 -b .str-trunc-warn
%patch17 -p1 -b .ptr-cast
%patch18 -p1 -b .aslcodegen
cp -p %{SOURCE2} README.Fedora
cp -p %{SOURCE3} iasl.1

28
aslcodegen.patch Normal file
View File

@ -0,0 +1,28 @@
Changes in the handling of comments caused some length fields to be used
in new ways. The new way broke the existing adaptation for big endian
support; this patch repairs that adaptation.
Signed-off-by: Al Stone <ahs3@redhat.com>
diff -Naur acpica-unix2-20180531.orig/source/compiler/aslcodegen.c acpica-unix2-20180531/source/compiler/aslcodegen.c
--- acpica-unix2-20180531.orig/source/compiler/aslcodegen.c 2018-07-06 20:28:35.255546578 -0400
+++ acpica-unix2-20180531/source/compiler/aslcodegen.c 2018-07-06 20:32:10.373797644 -0400
@@ -494,8 +494,7 @@
/* Table length. Checksum zero for now, will rewrite later */
- DWord = sizeof (ACPI_TABLE_HEADER) + Op->Asl.AmlSubtreeLength;
- ACPI_MOVE_32_TO_32(&TableHeader.Length, &DWord);
+ TableHeader.Length = sizeof (ACPI_TABLE_HEADER) + Op->Asl.AmlSubtreeLength;
/* Calculate the comment lengths for this definition block parseOp */
@@ -539,6 +538,8 @@
CvDbgPrint (" Length: %u\n", CommentLength);
}
}
+ DWord = TableHeader.Length;
+ ACPI_MOVE_32_TO_32(&TableHeader.Length, &DWord);
TableHeader.Checksum = 0;