diff --git a/src/common/Utilities/StartProcess.cpp b/src/common/Utilities/StartProcess.cpp index 1da7817f4..7fbe053a8 100644 --- a/src/common/Utilities/StartProcess.cpp +++ b/src/common/Utilities/StartProcess.cpp @@ -70,7 +70,7 @@ namespace Acore static int CreateChildProcess(T waiter, std::string const& executable, std::vector const& argsVector, std::string const& logger, std::string const& input, - bool secure, boost::process::environment envVariables = boost::this_process::environment()) + bool secure) { ipstream outStream; ipstream errStream; @@ -97,7 +97,7 @@ namespace Acore return child{ exe = std::filesystem::absolute(executable).string(), args = argsVector, - env = environment(envVariables), + env = environment(boost::this_process::environment()), std_in = inputFile.get(), std_out = outStream, std_err = errStream @@ -109,7 +109,7 @@ namespace Acore return child{ exe = std::filesystem::absolute(executable).string(), args = argsVector, - env = environment(envVariables), + env = environment(boost::this_process::environment()), std_in = boost::process::close, std_out = outStream, std_err = errStream @@ -144,7 +144,7 @@ namespace Acore } int StartProcess(std::string const& executable, std::vector const& args, - std::string const& logger, std::string input_file, bool secure, boost::process::environment env) + std::string const& logger, std::string input_file, bool secure) { return CreateChildProcess([](child& c) -> int { @@ -157,7 +157,7 @@ namespace Acore { return EXIT_FAILURE; } - }, executable, args, logger, input_file, secure, env); + }, executable, args, logger, input_file, secure); } class AsyncProcessResultImplementation @@ -168,7 +168,6 @@ namespace Acore std::string const logger; std::string const input_file; bool const is_secure; - boost::process::environment envVariables; std::atomic was_terminated; @@ -178,10 +177,10 @@ namespace Acore public: explicit AsyncProcessResultImplementation(std::string executable_, std::vector args_, std::string logger_, std::string input_file_, - bool secure, boost::process::environment env) + bool secure) : executable(std::move(executable_)), args(std::move(args_)), logger(std::move(logger_)), input_file(input_file_), - is_secure(secure), envVariables(env), was_terminated(false) { } + is_secure(secure), was_terminated(false) { } AsyncProcessResultImplementation(AsyncProcessResultImplementation const&) = delete; AsyncProcessResultImplementation& operator= (AsyncProcessResultImplementation const&) = delete; @@ -210,7 +209,7 @@ namespace Acore my_child.reset(); return was_terminated ? EXIT_FAILURE : exitCode; - }, executable, args, logger, input_file, is_secure, envVariables); + }, executable, args, logger, input_file, is_secure); } void SetFuture(std::future result_) @@ -246,10 +245,10 @@ namespace Acore std::shared_ptr StartAsyncProcess(std::string executable, std::vector args, - std::string logger, std::string input_file, bool secure, boost::process::native_environment env) + std::string logger, std::string input_file, bool secure) { auto handle = std::make_shared( - std::move(executable), std::move(args), std::move(logger), std::move(input_file), secure, env); + std::move(executable), std::move(args), std::move(logger), std::move(input_file), secure); handle->SetFuture(std::async(std::launch::async, [handle] { return handle->StartProcess(); })); return handle; diff --git a/src/common/Utilities/StartProcess.h b/src/common/Utilities/StartProcess.h index f0d5d9781..6b564cb9e 100644 --- a/src/common/Utilities/StartProcess.h +++ b/src/common/Utilities/StartProcess.h @@ -23,7 +23,6 @@ #include #include #include -#include namespace Acore { @@ -35,7 +34,7 @@ namespace Acore /// Note that most executables expect it's name as the first argument. AC_COMMON_API int StartProcess(std::string const& executable, std::vector const& args, std::string const& logger, std::string input_file = "", - bool secure = false, boost::process::environment env = boost::this_process::environment()); + bool secure = false); /// Platform and library independent representation /// of asynchronous process results @@ -59,7 +58,7 @@ namespace Acore /// Note that most executables expect it's name as the first argument. AC_COMMON_API std::shared_ptr StartAsyncProcess(std::string executable, std::vector args, std::string logger, std::string input_file = "", - bool secure = false, boost::process::environment env = boost::this_process::environment()); + bool secure = false); /// Searches for the given executable in the PATH variable /// and returns a non-empty string when it was found. diff --git a/src/server/database/Updater/DBUpdater.cpp b/src/server/database/Updater/DBUpdater.cpp index af12f9ba7..d4ceb4f94 100644 --- a/src/server/database/Updater/DBUpdater.cpp +++ b/src/server/database/Updater/DBUpdater.cpp @@ -501,11 +501,9 @@ void DBUpdater::ApplyFile(DatabaseWorkerPool& pool, std::string const& hos if (!database.empty()) args.emplace_back(database); - auto env = boost::process::environment(); - // Invokes a mysql process which doesn't leak credentials to logs int const ret = Acore::StartProcess(DBUpdaterUtil::GetCorrectedMySQLExecutable(), args, - "sql.updates", "", true, env); + "sql.updates", "", true); if (ret != EXIT_SUCCESS) {