]> git.puffer.fish Git - matthieu/frr.git/commitdiff
afl llvm deferred mode
authorQuentin Young <qlyoung@cumulusnetworks.com>
Mon, 18 Nov 2019 20:17:46 +0000 (15:17 -0500)
committerQuentin Young <qlyoung@nvidia.com>
Mon, 15 Nov 2021 19:39:32 +0000 (14:39 -0500)
pimd/pim_main.c

index 778655c11f4cd3df33ec5e0362cb65250d60cc9a..544d47fc5e11ce32fb0e2449a650a84750418133 100644 (file)
@@ -128,8 +128,15 @@ int main(int argc, char **argv, char **envp)
        pim_vrf_init();
        pim_init();
 
+#ifdef __AFL_HAVE_MANUAL_CONTROL
+       __AFL_INIT();
+#endif
+
        fseek(stdin, 0, SEEK_END);
        long fsize = ftell(stdin);
+       if (fsize < 0)
+               return 0;
+
        fseek(stdin, 0, SEEK_SET);
        uint8_t *packet = malloc(fsize);
        fread(packet, 1, fsize, stdin);
@@ -140,7 +147,7 @@ int main(int argc, char **argv, char **envp)
 
        /* printf is expensive, skip it for fuzzing */
        //fprintf(stderr, "parse result: %d\n", result);
-       exit(0);
+       return result;
 #endif
 
        pim_router_init();