diff --git a/src/cmd_context/tptp_frontend.cpp b/src/cmd_context/tptp_frontend.cpp index 9c5edfd408..82f7f97322 100644 --- a/src/cmd_context/tptp_frontend.cpp +++ b/src/cmd_context/tptp_frontend.cpp @@ -1785,12 +1785,11 @@ class tptp_parser { char* buffer = nullptr; size_t len = 0; errno_t err = ::_dupenv_s(&buffer, &len, name); - if (err != 0) + if (err != 0 || !buffer) return false; - if (!buffer) - return false; - value.assign(buffer); - std::free(buffer); + std::unique_ptr buffer_guard(buffer, &std::free); + value.assign(buffer_guard.get()); + (void)len; return true; #else char const* v = std::getenv(name);