Skip to content

Commit 01991dc

Browse files
committed
CBD-6348: [BP] clang-analyzer: Dereference of null pointer
After upgrade to clang-15 it warns that the parameter to the constructor must not be null. Change-Id: Ia474927a2b862ed854071f2b822c9a5b6e2fe8e4 Reviewed-on: https://review.couchbase.org/c/kv_engine/+/234820 Reviewed-by: Jim Walker <[email protected]> Tested-by: Trond Norbye <[email protected]> Well-Formed: Restriction Checker
1 parent 7dab5b6 commit 01991dc

File tree

1 file changed

+19
-11
lines changed

1 file changed

+19
-11
lines changed

engines/crash_engine/crash_engine.cc

Lines changed: 19 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -76,24 +76,32 @@ class CrashEngine : public EngineIface {
7676
* means crashing it.
7777
*/
7878
cb::engine_errc initialize(std::string_view) override {
79-
std::string mode_string(getenv("MEMCACHED_CRASH_TEST"));
79+
using namespace std::string_view_literals;
80+
const auto* ptr = getenv("MEMCACHED_CRASH_TEST");
81+
if (!ptr) {
82+
fmt::println(
83+
stderr,
84+
"crash_engine::initialize: MEMCACHED_CRASH_TEST not set");
85+
std::_Exit(EXIT_FAILURE);
86+
}
87+
std::string_view mode_string(ptr);
8088
CrashMode mode;
81-
if (mode_string == "segfault") {
89+
if (mode_string == "segfault"sv) {
8290
mode = CrashMode::SegFault;
83-
} else if (mode_string == "std_exception") {
91+
} else if (mode_string == "std_exception"sv) {
8492
mode = CrashMode::UncaughtStdException;
85-
} else if (mode_string == "std_exception_via_std_thread") {
93+
} else if (mode_string == "std_exception_via_std_thread"sv) {
8694
mode = CrashMode::UncaughtStdExceptionViaStdThread;
87-
} else if (mode_string == "std_exception_with_trace") {
95+
} else if (mode_string == "std_exception_with_trace"sv) {
8896
mode = CrashMode::UncaughtStdExceptionWithTrace;
89-
} else if (mode_string == "unknown_exception") {
97+
} else if (mode_string == "unknown_exception"sv) {
9098
mode = CrashMode::UncaughtUnknownException;
9199
} else {
92-
fprintf(stderr,
93-
"crash_engine::initialize: could not find a valid "
94-
"CrashMode from MEMCACHED_CRASH_TEST env var ('%s')\n",
95-
mode_string.c_str());
96-
exit(1);
100+
fmt::println(stderr,
101+
"crash_engine::initialize: could not find a valid "
102+
"CrashMode from MEMCACHED_CRASH_TEST env var ({:?})",
103+
mode_string);
104+
exit(EXIT_FAILURE);
97105
}
98106
if (mode == CrashMode::UncaughtStdExceptionViaStdThread) {
99107
std::thread thread{[mode] { recursive_crash_function(25, mode); }};

0 commit comments

Comments
 (0)