Make readHeader check the header size before using it.

Change-Id: I5dc3e2b674f7343ef57317fde6bdb7349a7fe04c
main
Yuichiro Hanada 2013-08-13 17:06:25 +09:00
parent e8264cab71
commit b7bb9c9722
1 changed files with 3 additions and 2 deletions

View File

@ -1683,13 +1683,14 @@ public final class BinaryDictInputOutput {
final HashMap<String, String> attributes = new HashMap<String, String>();
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),