Fix: Reading invalid dictionary position.

Bug: 6669677

Change-Id: I3f4078aaa8cf72f3b366e7851457e9c753c0102f
main
Keisuke Kuroynagi 2013-07-02 18:39:56 +09:00
parent b6f5d3e39d
commit f6aa9e9a1d
1 changed files with 5 additions and 4 deletions

View File

@ -76,12 +76,13 @@ class TerminalAttributes {
mNodeFlags(nodeFlags), mShortcutListSizePos(shortcutPos) {} mNodeFlags(nodeFlags), mShortcutListSizePos(shortcutPos) {}
inline ShortcutIterator getShortcutIterator() const { inline ShortcutIterator getShortcutIterator() const {
// The size of the shortcuts is stored here so that the whole shortcut chunk can be
// skipped quickly, so we ignore it.
int shortcutPos = mShortcutListSizePos; int shortcutPos = mShortcutListSizePos;
const bool hasShortcutList = 0 != (mNodeFlags & BinaryFormat::FLAG_HAS_SHORTCUT_TARGETS);
if (hasShortcutList) {
BinaryDictionaryTerminalAttributesReadingUtils::getShortcutListSizeAndForwardPointer( BinaryDictionaryTerminalAttributesReadingUtils::getShortcutListSizeAndForwardPointer(
mBinaryDictionaryInfo, &shortcutPos); mBinaryDictionaryInfo, &shortcutPos);
const bool hasShortcutList = 0 != (mNodeFlags & BinaryFormat::FLAG_HAS_SHORTCUT_TARGETS); }
// shortcutPos is never used if hasShortcutList is false.
return ShortcutIterator(mBinaryDictionaryInfo, shortcutPos, hasShortcutList); return ShortcutIterator(mBinaryDictionaryInfo, shortcutPos, hasShortcutList);
} }