From 6e1049872ae2606cfb3820464c850c694275ae59 Mon Sep 17 00:00:00 2001 From: Yann Collet Date: Mon, 22 Sep 2014 02:59:42 +0100 Subject: LZ4F_compressFrame : fix potential crash on selecting custom preferences frame fuzzer tests : new random tests using LZ4F_compressFrame --- lz4frame.c | 2 +- programs/frametest.c | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/lz4frame.c b/lz4frame.c index 9209191..47ad655 100644 --- a/lz4frame.c +++ b/lz4frame.c @@ -262,7 +262,7 @@ size_t LZ4F_compressFrame(void* dstBuffer, size_t dstMaxSize, const void* srcBuf cctxI.version = LZ4F_VERSION; - cctxI.maxBufferSize = 64 KB; /* mess with real buffer size to prevent allocation; works because autoflush==1 & stableSrc==1 */ + cctxI.maxBufferSize = 5 MB; /* mess with real buffer size to prevent allocation; works because autoflush==1 & stableSrc==1 */ if (preferencesPtr!=NULL) prefs = *preferencesPtr; { diff --git a/programs/frametest.c b/programs/frametest.c index 03b47e8..aa1a727 100644 --- a/programs/frametest.c +++ b/programs/frametest.c @@ -426,6 +426,14 @@ int fuzzerTests(U32 seed, unsigned nbTests, unsigned startTest, double compressi DISPLAYUPDATE(2, "\r%5i ", testNb); crcOrig = XXH64((BYTE*)srcBuffer+srcStart, srcSize, 1); + if ((FUZ_rand(&randState)&0xF) == 2) + { + LZ4F_preferences_t* framePrefs = &prefs; + if ((FUZ_rand(&randState)&7) == 1) framePrefs = NULL; + cSize = LZ4F_compressFrame(compressedBuffer, LZ4F_compressFrameBound(srcSize, framePrefs), srcBuffer + srcStart, srcSize, framePrefs); + CHECK(LZ4F_isError(cSize), "LZ4F_compressFrame failed : error %i (%s)", (int)cSize, LZ4F_getErrorName(cSize)); + } + else { const BYTE* ip = (const BYTE*)srcBuffer + srcStart; const BYTE* const iend = ip + srcSize; -- cgit v0.12