diff --git a/Source/Tools/FEXBash/FEXBash.cpp b/Source/Tools/FEXBash/FEXBash.cpp index ebf43d593..ccd9c1319 100644 --- a/Source/Tools/FEXBash/FEXBash.cpp +++ b/Source/Tools/FEXBash/FEXBash.cpp @@ -97,7 +97,9 @@ int main(int argc, char** argv, char** const envp) { Envp.emplace_back(envp[i]); } } - Envp.emplace_back(EnchantedPS1(PS1Env).c_str()); + // Keep the string alive until after execve. + const std::string PS1 = EnchantedPS1(PS1Env); + Envp.emplace_back(PS1.c_str()); Envp.emplace_back(nullptr); return execve(Argv[0], const_cast(Argv.data()), const_cast(&Envp[0]));