summaryrefslogtreecommitdiffstats
path: root/llvm/lib/Fuzzer/FuzzerUtil.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'llvm/lib/Fuzzer/FuzzerUtil.cpp')
-rw-r--r--llvm/lib/Fuzzer/FuzzerUtil.cpp16
1 files changed, 11 insertions, 5 deletions
diff --git a/llvm/lib/Fuzzer/FuzzerUtil.cpp b/llvm/lib/Fuzzer/FuzzerUtil.cpp
index 9364955b305..84c4983f991 100644
--- a/llvm/lib/Fuzzer/FuzzerUtil.cpp
+++ b/llvm/lib/Fuzzer/FuzzerUtil.cpp
@@ -19,6 +19,7 @@
#include <signal.h>
#include <sstream>
#include <unistd.h>
+#include <errno.h>
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;
}
OpenPOWER on IntegriCloud