diff --git a/llvm/lib/Fuzzer/FuzzerTraceState.cpp b/llvm/lib/Fuzzer/FuzzerTraceState.cpp index d9963682fdfe..dc4f18c353ae 100644 --- a/llvm/lib/Fuzzer/FuzzerTraceState.cpp +++ b/llvm/lib/Fuzzer/FuzzerTraceState.cpp @@ -319,7 +319,7 @@ void TraceState::DFSanCmpCallback(uintptr_t PC, size_t CmpSize, size_t CmpType, AddMutation(Pos, CmpSize, Data - 1); } - if (CmpSize > LR.End - LR.Beg) + if (CmpSize > (size_t)(LR.End - LR.Beg)) AddMutation(LR.Beg, (unsigned)(LR.End - LR.Beg), Data); diff --git a/llvm/lib/Fuzzer/FuzzerUtil.cpp b/llvm/lib/Fuzzer/FuzzerUtil.cpp index 9364955b3052..84c4983f991f 100644 --- a/llvm/lib/Fuzzer/FuzzerUtil.cpp +++ b/llvm/lib/Fuzzer/FuzzerUtil.cpp @@ -19,6 +19,7 @@ #include #include #include +#include namespace fuzzer { @@ -84,14 +85,18 @@ static void SetSigaction(int signum, struct sigaction sigact; memset(&sigact, 0, sizeof(sigact)); sigact.sa_sigaction = callback; - int Res = sigaction(signum, &sigact, 0); - assert(Res == 0); + if (sigaction(signum, &sigact, 0)) { + Printf("libFuzzer: sigaction failed with %d\n", errno); + exit(1); + } } void SetTimer(int Seconds) { struct itimerval T {{Seconds, 0}, {Seconds, 0}}; - int Res = setitimer(ITIMER_REAL, &T, nullptr); - assert(Res == 0); + if (setitimer(ITIMER_REAL, &T, nullptr)) { + Printf("libFuzzer: setitimer failed with %d\n", errno); + exit(1); + } SetSigaction(SIGALRM, AlarmHandler); } @@ -105,7 +110,8 @@ void SetSigIntHandler() { SetSigaction(SIGINT, InterruptHandler); } int NumberOfCpuCores() { FILE *F = popen("nproc", "r"); int N = 0; - fscanf(F, "%d", &N); + if (fscanf(F, "%d", &N) != 1) + N = 1; fclose(F); return N; }