From 4f8d79f3a2e4abfe0126eba1934e398424952aa9 Mon Sep 17 00:00:00 2001 From: Lothar Braun Date: Sun, 26 Apr 2020 14:01:23 +0200 Subject: [PATCH] Introduce a new cmake option that allows graceful shutdown in case of options --- CMakeLists.txt | 6 ++++++ src/common/msg.cc | 4 ++++ 2 files changed, 10 insertions(+) diff --git a/CMakeLists.txt b/CMakeLists.txt index 6e6c2df..2ef80ab 100644 --- a/CMakeLists.txt +++ b/CMakeLists.txt @@ -565,6 +565,12 @@ IF (DISABLE_MEMMANAGER) ADD_DEFINITIONS(-DIM_DISABLE) ENDIF (DISABLE_MEMMANAGER) +OPTION(EXIT_ON_EXCEPTION "Thrown exceptions in VERMONT result in a graceful shutdown. Useful for fuzz testing only." OFF) +MARK_AS_ADVANCED(EXIT_ON_EXCEPTION) +IF (EXIT_ON_EXCEPTION) + ADD_DEFINITIONS(-DEXIT_ON_EXCEPTION) +ENDIF(EXIT_ON_EXCEPTION) + ### IPFIXLOLIB_RAWDIR_SUPPORT diff --git a/src/common/msg.cc b/src/common/msg.cc index b3e5032..1488da3 100644 --- a/src/common/msg.cc +++ b/src/common/msg.cc @@ -334,7 +334,11 @@ extern "C" { msg_expand(text, line, filename, funcname, simplefunc, LOG_CRIT, fmt, &args); va_end(args); +#ifdef EXIT_ON_EXCEPTION + exit(0); +#else throw std::runtime_error(text); +#endif } #ifdef __cplusplus