1
0
mirror of https://github.com/facebook/zstd.git synced 2025-03-06 16:56:49 +02:00

detect extraneous bytes in the Sequences section

when nbSeq == 0.

Reported by @ip7z
This commit is contained in:
Yann Collet 2023-06-13 11:43:45 -07:00
parent c8888d9bf4
commit b46236278a
3 changed files with 18 additions and 0 deletions

View File

@ -720,6 +720,8 @@ size_t ZSTD_decodeSeqHeaders(ZSTD_DCtx* dctx, int* nbSeqPtr,
if (nbSeq == 0) {
/* No sequence : section ends immediately */
RETURN_ERROR_IF(ip != iend, corruption_detected,
"extraneous data present in the Sequences section");
return (size_t)(ip - istart);
}

View File

@ -0,0 +1,11 @@
#!/bin/sh
set -e
GOLDEN_DIR="$ZSTD_REPO_DIR/tests/golden-decompression-errors/"
for file in "$GOLDEN_DIR"/*; do
zstd -t $file && die "should have detected an error"
done
exit 0

View File

@ -444,6 +444,11 @@ $DIFF -s tmp1 tmp
touch tmp_empty
zstd -d -o tmp2 "$TESTDIR/golden-decompression/empty-block.zst"
$DIFF -s tmp2 tmp_empty
zstd -t "$TESTDIR/golden-decompression/zeroSeq_2B.zst"
zstd -t "$TESTDIR/golden-decompression-errors/zeroSeq_extraneous.zst" && die "invalid Sequences section should have been detected"
rm -f tmp*
println "\n===> compress multiple files"