]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
removed previous double free crash, used new crash function 722/head
authorPaul Cruz <paulcruz74@fb.com>
Fri, 9 Jun 2017 20:57:18 +0000 (13:57 -0700)
committerPaul Cruz <paulcruz74@fb.com>
Fri, 9 Jun 2017 20:57:18 +0000 (13:57 -0700)
tests/roundTripCrash.c

index 88282b45d28618a2bcd470c4152547c042246e5f..77c6737eebdb24a34509fa764ce64a317158d93a 100644 (file)
@@ -68,9 +68,8 @@ static size_t checkBuffers(const void* buff1, const void* buff2, size_t buffSize
     return pos;
 }
 
-static void crashWithMessage(const char* message, int errorCode){
+static void crash(int errorCode){
     /* abort if AFL/libfuzzer, exit otherwise */
-    fprintf(stderr, "%s", message);
     #ifdef FUZZING_BUILD_MODE_UNSAFE_FOR_PRODUCTION /* could also use __AFL_COMPILER */
         abort();
     #else
@@ -83,7 +82,6 @@ static void roundTripCheck(const void* srcBuff, size_t srcBuffSize)
     size_t const cBuffSize = ZSTD_compressBound(srcBuffSize);
     void* cBuff = malloc(cBuffSize);
     void* rBuff = malloc(cBuffSize);
-    #define CRASH { free(cBuff); free(cBuff); }   /* double free, to crash program */
 
     if (!cBuff || !rBuff) {
         fprintf(stderr, "not enough memory ! \n");
@@ -93,15 +91,15 @@ static void roundTripCheck(const void* srcBuff, size_t srcBuffSize)
     {   size_t const result = roundTripTest(rBuff, cBuffSize, cBuff, cBuffSize, srcBuff, srcBuffSize);
         if (ZSTD_isError(result)) {
             fprintf(stderr, "roundTripTest error : %s \n", ZSTD_getErrorName(result));
-            CRASH;
+            crash(1);
         }
         if (result != srcBuffSize) {
             fprintf(stderr, "Incorrect regenerated size : %u != %u\n", (unsigned)result, (unsigned)srcBuffSize);
-            CRASH;
+            crash(1);
         }
         if (checkBuffers(srcBuff, rBuff, srcBuffSize) != srcBuffSize) {
             fprintf(stderr, "Silent decoding corruption !!!");
-            CRASH;
+            crash(1);
         }
     }