Skip to content

Commit fc31d9b

Browse files
authored
Merge pull request #60 from maxmind/greg/decoder-cleanup
Fix incorrect decoding of large sizes
2 parents 17156bc + 110eeaa commit fc31d9b

File tree

1 file changed

+3
-5
lines changed

1 file changed

+3
-5
lines changed

src/main/java/com/maxmind/db/Decoder.java

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -131,17 +131,15 @@ private JsonNode decode() throws IOException {
131131

132132
int size = ctrlByte & 0x1f;
133133
if (size >= 29) {
134-
int bytesToRead = size - 28;
135-
int i = this.decodeInteger(bytesToRead);
136134
switch (size) {
137135
case 29:
138-
size = 29 + i;
136+
size = 29 + buffer.get();
139137
break;
140138
case 30:
141-
size = 285 + i;
139+
size = 285 + decodeInteger(2);
142140
break;
143141
default:
144-
size = 65821 + (i & (0x0FFFFFFF >>> 32 - 8 * bytesToRead));
142+
size = 65821 + decodeInteger(3);
145143
}
146144
}
147145

0 commit comments

Comments
 (0)