From b7bb9c97224f34253e9bcefa1f1a6b2fdb776bbe Mon Sep 17 00:00:00 2001 From: Yuichiro Hanada Date: Tue, 13 Aug 2013 17:06:25 +0900 Subject: [PATCH] Make readHeader check the header size before using it. Change-Id: I5dc3e2b674f7343ef57317fde6bdb7349a7fe04c --- .../inputmethod/latin/makedict/BinaryDictInputOutput.java | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/java/src/com/android/inputmethod/latin/makedict/BinaryDictInputOutput.java b/java/src/com/android/inputmethod/latin/makedict/BinaryDictInputOutput.java index e2fa0231d..e0874bbd5 100644 --- a/java/src/com/android/inputmethod/latin/makedict/BinaryDictInputOutput.java +++ b/java/src/com/android/inputmethod/latin/makedict/BinaryDictInputOutput.java @@ -1683,13 +1683,14 @@ public final class BinaryDictInputOutput { final HashMap attributes = new HashMap(); final int headerSize; headerSize = buffer.readInt(); - populateOptions(buffer, headerSize, attributes); - buffer.position(headerSize); if (headerSize < 0) { throw new UnsupportedFormatException("header size can't be negative."); } + populateOptions(buffer, headerSize, attributes); + buffer.position(headerSize); + final FileHeader header = new FileHeader(headerSize, new FusionDictionary.DictionaryOptions(attributes, 0 != (optionsFlags & FormatSpec.GERMAN_UMLAUT_PROCESSING_FLAG),