Merge pull request #510 from iburinoc/baddict
Fixed decompress_usingDict not propagating corrupted dictionary error
This commit is contained in:
@@ -1444,7 +1444,7 @@ size_t ZSTD_decompress_usingDict(ZSTD_DCtx* dctx,
|
|||||||
#if defined(ZSTD_LEGACY_SUPPORT) && (ZSTD_LEGACY_SUPPORT==1)
|
#if defined(ZSTD_LEGACY_SUPPORT) && (ZSTD_LEGACY_SUPPORT==1)
|
||||||
if (ZSTD_isLegacy(src, srcSize)) return ZSTD_decompressLegacy(dst, dstCapacity, src, srcSize, dict, dictSize);
|
if (ZSTD_isLegacy(src, srcSize)) return ZSTD_decompressLegacy(dst, dstCapacity, src, srcSize, dict, dictSize);
|
||||||
#endif
|
#endif
|
||||||
ZSTD_decompressBegin_usingDict(dctx, dict, dictSize);
|
CHECK_F(ZSTD_decompressBegin_usingDict(dctx, dict, dictSize));
|
||||||
ZSTD_checkContinuity(dctx, dst);
|
ZSTD_checkContinuity(dctx, dst);
|
||||||
return ZSTD_decompressFrame(dctx, dst, dstCapacity, src, srcSize);
|
return ZSTD_decompressFrame(dctx, dst, dstCapacity, src, srcSize);
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -312,6 +312,15 @@ static int basicUnitTests(U32 seed, double compressibility)
|
|||||||
if (r != CNBuffSize) goto _output_error);
|
if (r != CNBuffSize) goto _output_error);
|
||||||
DISPLAYLEVEL(4, "OK \n");
|
DISPLAYLEVEL(4, "OK \n");
|
||||||
|
|
||||||
|
DISPLAYLEVEL(4, "test%3i : dictionary containing only header should return error : ", testNb++);
|
||||||
|
{
|
||||||
|
const size_t ret = ZSTD_decompress_usingDict(
|
||||||
|
dctx, decodedBuffer, CNBuffSize, compressedBuffer, cSize,
|
||||||
|
"\x37\xa4\x30\xec\x11\x22\x33\x44", 8);
|
||||||
|
if (ZSTD_getErrorCode(ret) != ZSTD_error_dictionary_corrupted) goto _output_error;
|
||||||
|
}
|
||||||
|
DISPLAYLEVEL(4, "OK \n");
|
||||||
|
|
||||||
ZSTD_freeCCtx(cctx);
|
ZSTD_freeCCtx(cctx);
|
||||||
ZSTD_freeDCtx(dctx);
|
ZSTD_freeDCtx(dctx);
|
||||||
free(dictBuffer);
|
free(dictBuffer);
|
||||||
|
|||||||
Reference in New Issue
Block a user