From: Yann Collet Date: Sat, 19 Mar 2016 10:40:19 +0000 (+0100) Subject: Fixed : decoder error on erroneous data X-Git-Tag: v0.6.0^2~17^2~46 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=f3120413cce912886d808726b481a06462e6a8db;p=thirdparty%2Fzstd.git Fixed : decoder error on erroneous data --- diff --git a/programs/fuzzer.c b/programs/fuzzer.c index 55e0c7d70..72d71ea98 100644 --- a/programs/fuzzer.c +++ b/programs/fuzzer.c @@ -596,18 +596,16 @@ int fuzzerTests(U32 seed, U32 nbTests, unsigned startTest, double compressibilit } /* decompress noisy source */ - { - U32 noiseSrc = FUZ_rand(&lseed) % 5; - const U32 endMark = 0xA9B1C3D6; - U32 endCheck; + { U32 const noiseSrc = FUZ_rand(&lseed) % 5; + U32 const endMark = 0xA9B1C3D6; srcBuffer = cNoiseBuffer[noiseSrc]; memcpy(dstBuffer+sampleSize, &endMark, 4); errorCode = ZSTD_decompress(dstBuffer, sampleSize, cBuffer, cSize); /* result *may* be an unlikely success, but even then, it must strictly respect dest buffer boundaries */ CHECK((!ZSTD_isError(errorCode)) && (errorCode>sampleSize), "ZSTD_decompress on noisy src : result is too large : %u > %u (dst buffer)", (U32)errorCode, (U32)sampleSize); - memcpy(&endCheck, dstBuffer+sampleSize, 4); - CHECK(endMark!=endCheck, "ZSTD_decompress on noisy src : dst buffer overflow"); + { U32 endCheck; memcpy(&endCheck, dstBuffer+sampleSize, 4); + CHECK(endMark!=endCheck, "ZSTD_decompress on noisy src : dst buffer overflow"); } } }