[libFuzzer] use print+exit(1) instead of assert to report an error
authorKostya Serebryany <kcc@google.com>
Sat, 21 Jan 2017 00:13:50 +0000 (00:13 +0000)
committerKostya Serebryany <kcc@google.com>
Sat, 21 Jan 2017 00:13:50 +0000 (00:13 +0000)
llvm-svn: 292685

llvm/lib/Fuzzer/FuzzerDriver.cpp
llvm/lib/Fuzzer/test/fuzzer.test

index b11b3a3..5620cde 100644 (file)
@@ -365,8 +365,10 @@ int FuzzerDriver(int *argc, char ***argv, UserCallback Callback) {
   const std::vector<std::string> Args(*argv, *argv + *argc);
   assert(!Args.empty());
   ProgName = new std::string(Args[0]);
-  assert(Argv0 == *ProgName &&
-         "argv[0] has been modified in LLVMFuzzerInitialize");
+  if (Argv0 != *ProgName) {
+    Printf("ERROR: argv[0] has been modified in LLVMFuzzerInitialize\n");
+    exit(1);
+  }
   ParseFlags(Args);
   if (Flags.help) {
     PrintHelp();
index d629885..a54e75c 100644 (file)
@@ -56,5 +56,5 @@ STRNCMP: AddressSanitizer: heap-buffer-overflow
 STRNCMP-NOT: __sanitizer_weak_hook_strncmp
 STRNCMP: in LLVMFuzzerTestOneInput
 
-RUN: not --crash LLVMFuzzer-BogusInitializeTest 2>&1 | FileCheck %s --check-prefix=BOGUS_INITIALIZE
+RUN: not LLVMFuzzer-BogusInitializeTest 2>&1 | FileCheck %s --check-prefix=BOGUS_INITIALIZE
 BOGUS_INITIALIZE: argv[0] has been modified in LLVMFuzzerInitialize