diff --git a/lib/cli/consolecommand.cpp b/lib/cli/consolecommand.cpp index c102452dc..7d9ac2719 100644 --- a/lib/cli/consolecommand.cpp +++ b/lib/cli/consolecommand.cpp @@ -286,17 +286,22 @@ int ConsoleCommand::RunScriptConsole(ScriptFrame& scriptFrame, const String& add int next_line = 1; #ifdef HAVE_EDITLINE - String homeEnv = getenv("HOME"); - String historyPath = homeEnv + "/.icinga2_history"; + char *homeEnv = getenv("HOME"); + String historyPath; std::fstream historyfp; - historyfp.open(historyPath.CStr(), std::fstream::in); - String line; - while (std::getline(historyfp, line.GetData())) - add_history(line.CStr()); + if (homeEnv) { + historyPath = String(homeEnv) + "/.icinga2_history"; - historyfp.close(); + historyfp.open(historyPath.CStr(), std::fstream::in); + + String line; + while (std::getline(historyfp, line.GetData())) + add_history(line.CStr()); + + historyfp.close(); + } #endif /* HAVE_EDITLINE */ l_ScriptFrame = &scriptFrame; @@ -369,9 +374,11 @@ incomplete: if (commandOnce.IsEmpty() && cline[0] != '\0') { add_history(cline); - historyfp.open(historyPath.CStr(), std::fstream::out | std::fstream::app); - historyfp << cline << "\n"; - historyfp.close(); + if (!historyPath.IsEmpty()) { + historyfp.open(historyPath.CStr(), std::fstream::out | std::fstream::app); + historyfp << cline << "\n"; + historyfp.close(); + } } line = cline;