diff options
| author | Maciej Domanski <maciej.domanski@trailofbits.com> | 2022-12-27 15:39:47 +0100 |
|---|---|---|
| committer | Maciej Domanski <maciej.domanski@trailofbits.com> | 2022-12-27 15:39:47 +0100 |
| commit | 6fe38b2138ed993f3af28fc5ab92fda8f7542ef7 (patch) | |
| tree | 8f5790a9742c93d4fbb364c9f6fa96af2e97c311 /utils/argv_fuzzing/argv_fuzz_persistent_demo.c | |
| parent | 342081d5ee367f473df3fc34c55edb5df7e42d0f (diff) | |
| download | afl++-6fe38b2138ed993f3af28fc5ab92fda8f7542ef7.tar.gz | |
argv fuzz persistent
Diffstat (limited to 'utils/argv_fuzzing/argv_fuzz_persistent_demo.c')
| -rw-r--r-- | utils/argv_fuzzing/argv_fuzz_persistent_demo.c | 28 |
1 files changed, 28 insertions, 0 deletions
diff --git a/utils/argv_fuzzing/argv_fuzz_persistent_demo.c b/utils/argv_fuzzing/argv_fuzz_persistent_demo.c new file mode 100644 index 00000000..5ecda22b --- /dev/null +++ b/utils/argv_fuzzing/argv_fuzz_persistent_demo.c @@ -0,0 +1,28 @@ +#include <stdio.h> +#include <string.h> +#include "argv-fuzz-inl.h" + +__AFL_FUZZ_INIT(); + +int main(int argc, char **argv) { +#ifdef __AFL_HAVE_MANUAL_CONTROL + __AFL_INIT(); +#endif + unsigned char *buf = __AFL_FUZZ_TESTCASE_BUF; + + while (__AFL_LOOP(100000)) { + int len = __AFL_FUZZ_TESTCASE_LEN; + + if (len < 8) continue; + + AFL_INIT_ARGV_P(buf); + + if (argc > 1 && strcmp(argv[1], "XYZ") == 0) { + if (strcmp(argv[2], "TEST2") == 0) { abort(); } + } else { + printf("Bad number of arguments!\n"); + } + } + + return 0; +} \ No newline at end of file |
