Fix small file passthrough (#3215)

dev
Chris Burgess 2022-07-29 15:22:46 -04:00 committed by GitHub
parent 1e09cffd9b
commit 2b9fde932b
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 14 additions and 1 deletions

View File

@ -2346,7 +2346,10 @@ static int FIO_decompressFrames(FIO_ctx_t* const fCtx,
break; /* no more input */
}
readSomething = 1; /* there is at least 1 byte in srcFile */
if (ress.readCtx->srcBufferLoaded < toRead) {
if (ress.readCtx->srcBufferLoaded < toRead) { /* not enough input to check magic number */
if ((prefs->overwrite) && !strcmp (dstFileName, stdoutmark)) { /* pass-through mode */
return FIO_passThrough(&ress);
}
DISPLAYLEVEL(1, "zstd: %s: unknown header \n", srcFileName);
return 1;
}

View File

@ -808,6 +808,16 @@ println "Hello world 1!" | zstd -df
println "Hello world 2!" | zstd -dcf
println "Hello world 3!" > tmp1
zstd -dcf tmp1
println "" | zstd -df > tmp1
println "" > tmp2
$DIFF -q tmp1 tmp2
println "1" | zstd -df > tmp1
println "1" > tmp2
$DIFF -q tmp1 tmp2
println "12" | zstd -df > tmp1
println "12" > tmp2
$DIFF -q tmp1 tmp2
rm -rf tmp*
println "\n===> frame concatenation "