Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit dfc51ec9 authored by Keisuke Kuroyanagi's avatar Keisuke Kuroyanagi Committed by Android Git Automerger
Browse files

am 7d2a0db7: Merge "Add boundary check for PtNode reading position."

* commit '7d2a0db7':
  Add boundary check for PtNode reading position.
parents 4e3d7782 7d2a0db7
Loading
Loading
Loading
Loading
+22 −0
Original line number Diff line number Diff line
@@ -25,6 +25,13 @@ namespace latinime {

void DynamicPatriciaTrieNodeReader::fetchNodeInfoFromBufferAndProcessMovedNode(const int nodePos,
        const int maxCodePointCount, int *const outCodePoints) {
    if (nodePos < 0 || nodePos >= mBuffer->getTailPosition()) {
        AKLOGE("Fetching PtNode info form invalid dictionary position: %d, dictionary size: %d",
                nodePos, mBuffer->getTailPosition());
        ASSERT(false);
        invalidatePtNodeInfo();
        return;
    }
    const bool usesAdditionalBuffer = mBuffer->isInAdditionalBuffer(nodePos);
    const uint8_t *const dictBuf = mBuffer->getBuffer(usesAdditionalBuffer);
    int pos = nodePos;
@@ -94,4 +101,19 @@ void DynamicPatriciaTrieNodeReader::fetchNodeInfoFromBufferAndProcessMovedNode(c
    }
}

void DynamicPatriciaTrieNodeReader::invalidatePtNodeInfo() {
    mHeadPos = NOT_A_VALID_WORD_POS;
    mFlags = 0;
    mParentPos = NOT_A_DICT_POS;
    mCodePointCount = 0;
    mProbabilityFieldPos = NOT_A_DICT_POS;
    mProbability = NOT_A_PROBABILITY;
    mChildrenPosFieldPos = NOT_A_DICT_POS;
    mChildrenPos = NOT_A_DICT_POS;
    mBigramLinkedNodePos = NOT_A_DICT_POS;
    mShortcutPos = NOT_A_DICT_POS;
    mBigramPos = NOT_A_DICT_POS;
    mSiblingPos = NOT_A_VALID_WORD_POS;
}

}
+2 −0
Original line number Diff line number Diff line
@@ -156,6 +156,8 @@ class DynamicPatriciaTrieNodeReader {

    void fetchNodeInfoFromBufferAndProcessMovedNode(const int nodePos, const int maxCodePointCount,
            int *const outCodePoints);

    void invalidatePtNodeInfo();
};
} // namespace latinime
#endif /* LATINIME_DYNAMIC_PATRICIA_TRIE_NODE_READER_H */