Skip to content

Commit 4fac8d7

Browse files
committed
Validate DEFLATE distance code range
1 parent ae8deec commit 4fac8d7

1 file changed

Lines changed: 3 additions & 0 deletions

File tree

src/lib/deflate-dec.inc.c

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -762,6 +762,9 @@ int inflate(z_stream *strm, int flush) {
762762
if (len > 15 || distance_code < 0) {
763763
return Z_DATA_ERROR; /* Invalid Huffman code */
764764
}
765+
if (distance_code > 29) {
766+
return Z_DATA_ERROR; /* Reserved distance codes 30-31 */
767+
}
765768
/* Convert to actual distance */
766769
static const uint16_t dist_base[] = {
767770
1, 2, 3, 4, 5, 7, 9, 13, 17, 25, 33, 49, 65, 97, 129, 193, 257, 385, 513, 769, 1025, 1537, 2049, 3073, 4097, 6145, 8193, 12289, 16385, 24577

0 commit comments

Comments
 (0)