Module Name: src
Committed By: msaitoh
Date: Fri Sep 16 08:08:01 UTC 2022
Modified Files:
src/sys/external/bsd/acpica/dist/dispatcher: dswexec.c
Log Message:
Fix out of range access in AcpiDsExecEndOp().
- Found by kUBSan.
- See: https://github.com/acpica/acpica/pull/745
To generate a diff of this commit:
cvs rdiff -u -r1.1.1.16 -r1.2 \
src/sys/external/bsd/acpica/dist/dispatcher/dswexec.c
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/external/bsd/acpica/dist/dispatcher/dswexec.c
diff -u src/sys/external/bsd/acpica/dist/dispatcher/dswexec.c:1.1.1.16 src/sys/external/bsd/acpica/dist/dispatcher/dswexec.c:1.2
--- src/sys/external/bsd/acpica/dist/dispatcher/dswexec.c:1.1.1.16 Sat Aug 27 14:02:03 2022
+++ src/sys/external/bsd/acpica/dist/dispatcher/dswexec.c Fri Sep 16 08:08:01 2022
@@ -461,9 +461,11 @@ AcpiDsExecEndOp (
/*
* All opcodes require operand resolution, with the only exceptions
- * being the ObjectType and SizeOf operators.
+ * being the ObjectType and SizeOf operators as well as operands that
+ * take no arguments.
*/
- if (!(WalkState->OpInfo->Flags & AML_NO_OPERAND_RESOLVE))
+ if (!(WalkState->OpInfo->Flags & AML_NO_OPERAND_RESOLVE) &&
+ (WalkState->OpInfo->Flags & AML_HAS_ARGS))
{
/* Resolve all operands */