]> git.ipfire.org Git - thirdparty/suricata.git/commitdiff
fuzz: improves detect proto target
authorPhilippe Antoine <contact@catenacyber.fr>
Thu, 15 Oct 2020 20:50:42 +0000 (22:50 +0200)
committerVictor Julien <victor@inliniac.net>
Tue, 1 Dec 2020 04:33:07 +0000 (05:33 +0100)
By mimicking assert message so as to clusterfuzz differentiates
between failures

src/tests/fuzz/fuzz_applayerprotodetectgetproto.c

index 4c6320879deed218e3a02e2c4f6fb629aef99d7b..bca53e14887db8c857c4d7c9cacd47b4f9fe7070 100644 (file)
@@ -64,7 +64,13 @@ int LLVMFuzzerTestOneInput(const uint8_t *data, size_t size)
         for (size_t i = 0; i < size-HEADER_LEN && i < PROTO_DETECT_MAX_LEN; i++) {
             alproto2 = AppLayerProtoDetectGetProto(alpd_tctx, f, data+HEADER_LEN, i, f->proto, data[0], &reverse);
             if (alproto2 != ALPROTO_UNKNOWN && alproto2 != alproto) {
-                printf("Assertion failure : With input length %"PRIuMAX", found %s instead of %s\n", (uintmax_t) i, AppProtoToString(alproto2), AppProtoToString(alproto));
+                printf("Failed with input length %" PRIuMAX " versus %" PRIuMAX
+                       ", found %s instead of %s\n",
+                        (uintmax_t)i, (uintmax_t)size - HEADER_LEN, AppProtoToString(alproto2),
+                        AppProtoToString(alproto));
+                printf("Assertion failure: %s-%s\n", AppProtoToString(alproto2),
+                        AppProtoToString(alproto));
+                fflush(stdout);
                 abort();
             }
         }