Skip to content

Commit aa6b827

Browse files
author
Gabriel Tincu
committed
Harden zstd decompression for missing frame size information (can happen when the sender is not under our control)
1 parent 6163a77 commit aa6b827

File tree

1 file changed

+5
-1
lines changed

1 file changed

+5
-1
lines changed

Diff for: kafka/codec.py

+5-1
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010

1111
_XERIAL_V1_HEADER = (-126, b'S', b'N', b'A', b'P', b'P', b'Y', 0, 1, 1)
1212
_XERIAL_V1_FORMAT = 'bccccccBii'
13+
ZSTD_MAX_OUTPUT_SIZE = 1024 ** 3
1314

1415
try:
1516
import snappy
@@ -319,4 +320,7 @@ def zstd_encode(payload):
319320
def zstd_decode(payload):
320321
if not zstd:
321322
raise NotImplementedError("Zstd codec is not available")
322-
return zstd.ZstdDecompressor().decompress(payload)
323+
try:
324+
return zstd.ZstdDecompressor().decompress(payload)
325+
except zstd.ZstdError:
326+
return zstd.ZstdDecompressor().decompress(payload, max_output_size=ZSTD_MAX_OUTPUT_SIZE)

0 commit comments

Comments
 (0)