Module Name: src
Committed By: joerg
Date: Sat May 3 23:19:56 UTC 2014
Modified Files:
src/sys/lib/libunwind: DwarfParser.hpp
Log Message:
Missing register validation check.
To generate a diff of this commit:
cvs rdiff -u -r1.4 -r1.5 src/sys/lib/libunwind/DwarfParser.hpp
Please note that diffs are not public domain; they are subject to the
copyright notices on the relevant files.
Modified files:
Index: src/sys/lib/libunwind/DwarfParser.hpp
diff -u src/sys/lib/libunwind/DwarfParser.hpp:1.4 src/sys/lib/libunwind/DwarfParser.hpp:1.5
--- src/sys/lib/libunwind/DwarfParser.hpp:1.4 Sat Apr 26 23:17:38 2014
+++ src/sys/lib/libunwind/DwarfParser.hpp Sat May 3 23:19:56 2014
@@ -461,6 +461,8 @@ CFI_Parser<A, R>::parseInstructions(A &a
reg = R::dwarf2regno(addressSpace.getULEB128(p, instructionsEnd));
offset =
addressSpace.getULEB128(p, instructionsEnd) * cieInfo.dataAlignFactor;
+ if (reg > kMaxRegisterNumber)
+ return false;
results->savedRegisters[reg].location = kRegisterOffsetFromCFA;
results->savedRegisters[reg].value = offset;
break;