diff options
author | Jagger <robert@swiecki.net> | 2015-09-08 01:26:58 +0200 |
---|---|---|
committer | Jagger <robert@swiecki.net> | 2015-09-08 01:26:58 +0200 |
commit | 794b75812b78198122e5cd1c3a1565b3565ebf84 (patch) | |
tree | abdcfcc7ebe447258536026d5373fa20969f77a4 /honggfuzz.c | |
parent | bcd578588a2aa964326a94a74ff857811714f80f (diff) | |
download | honggfuzz-794b75812b78198122e5cd1c3a1565b3565ebf84.tar.gz |
Add support for MSAN
Diffstat (limited to 'honggfuzz.c')
-rw-r--r-- | honggfuzz.c | 21 |
1 files changed, 20 insertions, 1 deletions
diff --git a/honggfuzz.c b/honggfuzz.c index 129e206b..480f2e3c 100644 --- a/honggfuzz.c +++ b/honggfuzz.c @@ -86,6 +86,8 @@ static void usage(bool exit_success) #if defined(_HF_ARCH_LINUX) " [" AB "-p val" AC "] : [Linux] attach to a pid (and its thread group), instead of \n" " monitoring a previously created process, (default: '" AB "0" AC "' [none])\n" + " [" AB "-LR" AC "] : [Linux] Don't disable ASLR randomization, might be useful with MSAN\n" + " [" AB "-LU" AC "] : [Linux] Report MSAN's UMRS (uninitialized memory access)\n" " [" AB "-g val" AC "] : [Linux] allow that many regressions (perf events) wrt the best one\n" " [" AB "-o val" AC "] : [Linux] cut-off address, don't record branches above that address\n" " [" AB "-D val" AC "] : [Linux] create a file dynamically with Linux perf counters,\n" @@ -168,6 +170,9 @@ int main(int argc, char **argv) .dynamicRegressionCnt = 0, .dynamicCutOffAddr = ~(0ULL), .dynamicFile_mutex = PTHREAD_MUTEX_INITIALIZER, + + .disableRandomization = true, + .msanReportUMRS = false, }; if (argc < 2) { @@ -175,7 +180,7 @@ int main(int argc, char **argv) } for (;;) { - c = getopt(argc, argv, "-?hqvsuf:d:e:r:c:F:D:t:a:R:n:N:l:p:g:o:E:w:"); + c = getopt(argc, argv, "-?hqvsuf:d:e:r:c:F:D:t:a:R:n:N:l:p:g:o:E:w:L:"); if (c < 0) break; @@ -275,12 +280,26 @@ int main(int argc, char **argv) case 'w': hfuzz.dictionaryFile = optarg; break; + case 'L': + switch (optarg[0]) { + case 'R': + hfuzz.disableRandomization = false; + break; + case 'U': + hfuzz.msanReportUMRS = true; + break; + default: + LOGMSG(l_ERROR, "Unknown -L switch"); + usage(EXIT_FAILURE); + } default: break; } } hfuzz.cmdline = &argv[optind]; + log_setMinLevel(ll); + if (hfuzz.dynamicFileBestSz > hfuzz.maxFileSz) { LOGMSG(l_FATAL, "Initial dynamic file size cannot be larger than maximum file size (%zu > %zu)", |