mirror of
https://github.com/facebook/zstd.git
synced 2025-09-01 04:42:03 +03:00
fixed : null-length string roundtrip
This commit is contained in:
@@ -535,10 +535,9 @@ unsigned long long FIO_decompressFrame(dRess_t ress,
|
|||||||
|
|
||||||
/* Complete Header loading */
|
/* Complete Header loading */
|
||||||
{ size_t const toLoad = ZSTD_frameHeaderSize_max - alreadyLoaded; /* assumption : alreadyLoaded <= ZSTD_frameHeaderSize_max */
|
{ size_t const toLoad = ZSTD_frameHeaderSize_max - alreadyLoaded; /* assumption : alreadyLoaded <= ZSTD_frameHeaderSize_max */
|
||||||
size_t const checkSize = fread(((char*)ress.srcBuffer) + alreadyLoaded, 1, toLoad, finput);
|
size_t const loadedSize = fread(((char*)ress.srcBuffer) + alreadyLoaded, 1, toLoad, finput); /* can be <= toLoad (null string) */
|
||||||
if (checkSize != toLoad) EXM_THROW(32, "Read error"); /* assumption : srcSize >= ZSTD_frameHeaderSize_max */
|
readSize = alreadyLoaded + loadedSize;
|
||||||
}
|
}
|
||||||
readSize = ZSTD_frameHeaderSize_max;
|
|
||||||
|
|
||||||
/* Main decompression Loop */
|
/* Main decompression Loop */
|
||||||
while (1) {
|
while (1) {
|
||||||
|
@@ -29,10 +29,11 @@ $ZSTD -f tmp # trivial compression case, creates tmp
|
|||||||
$ZSTD -df tmp.zst # trivial decompression case (overwrites tmp)
|
$ZSTD -df tmp.zst # trivial decompression case (overwrites tmp)
|
||||||
echo "test : too large compression level (must fail)"
|
echo "test : too large compression level (must fail)"
|
||||||
$ZSTD -99 tmp && die "too large compression level undetected"
|
$ZSTD -99 tmp && die "too large compression level undetected"
|
||||||
echo "test : compress null-length file"
|
echo "test : compress to stdout"
|
||||||
|
$ZSTD tmp -c > tmpCompressed
|
||||||
|
$ZSTD tmp --stdout > tmpCompressed # long command format
|
||||||
|
echo "test : null-length file roundtrip"
|
||||||
echo -n '' | $ZSTD - --stdout | $ZSTD -d --stdout
|
echo -n '' | $ZSTD - --stdout | $ZSTD -d --stdout
|
||||||
$ZSTD tmp -c > tmpCompressed # compression using stdout
|
|
||||||
$ZSTD tmp --stdout > tmpCompressed # compressoin using stdout, long format
|
|
||||||
echo "test : decompress file with wrong suffix (must fail)"
|
echo "test : decompress file with wrong suffix (must fail)"
|
||||||
$ZSTD -d tmpCompressed && die "wrong suffix error not detected!"
|
$ZSTD -d tmpCompressed && die "wrong suffix error not detected!"
|
||||||
$ZSTD -d tmpCompressed -c > tmpResult # decompression using stdout
|
$ZSTD -d tmpCompressed -c > tmpResult # decompression using stdout
|
||||||
|
Reference in New Issue
Block a user