Merge "Make readHeader check the header size before using it."

This commit is contained in:
Ken Wakasa 2013-08-13 08:14:43 +00:00 committed by Android (Google) Code Review
commit 7242bf1a15

View File

@ -1683,13 +1683,14 @@ public final class BinaryDictInputOutput {
final HashMap<String, String> attributes = new HashMap<String, String>(); final HashMap<String, String> attributes = new HashMap<String, String>();
final int headerSize; final int headerSize;
headerSize = buffer.readInt(); headerSize = buffer.readInt();
populateOptions(buffer, headerSize, attributes);
buffer.position(headerSize);
if (headerSize < 0) { if (headerSize < 0) {
throw new UnsupportedFormatException("header size can't be negative."); throw new UnsupportedFormatException("header size can't be negative.");
} }
populateOptions(buffer, headerSize, attributes);
buffer.position(headerSize);
final FileHeader header = new FileHeader(headerSize, final FileHeader header = new FileHeader(headerSize,
new FusionDictionary.DictionaryOptions(attributes, new FusionDictionary.DictionaryOptions(attributes,
0 != (optionsFlags & FormatSpec.GERMAN_UMLAUT_PROCESSING_FLAG), 0 != (optionsFlags & FormatSpec.GERMAN_UMLAUT_PROCESSING_FLAG),