Small tweak to one check in error handling to the dyld compact export
entries in libObject (done in r308690). In the case when the last node has no children setting State.Current = Children + 1; where that would be past Trie.end() is actually ok since the pointer is not used with zero children. rdar://33490512 llvm-svn: 308924
This commit is contained in:
parent
b739cb42f5
commit
8100cdeddf
@ -2789,13 +2789,13 @@ void ExportEntry::pushNode(uint64_t offset) {
|
||||
return;
|
||||
}
|
||||
}
|
||||
if (Children + 1 >= Trie.end()) {
|
||||
State.ChildCount = *Children;
|
||||
if (State.ChildCount != 0 && Children + 1 >= Trie.end()) {
|
||||
*E = malformedError("byte for count of childern in export trie data at "
|
||||
"node: 0x" + utohexstr(offset) + " extends past end of trie data");
|
||||
moveToEnd();
|
||||
return;
|
||||
}
|
||||
State.ChildCount = *Children;
|
||||
State.Current = Children + 1;
|
||||
State.NextChildIndex = 0;
|
||||
State.ParentStringLength = CumulativeString.size();
|
||||
|
||||
Loading…
x
Reference in New Issue
Block a user