CShellWindow: do not dereference NULL pointers

additionally, try to shorten the debug messages slightly and make the
output more useful in the error case for my_popen()

Signed-off-by: Thilo Graf <dbt@novatux.de>
This commit is contained in:
Stefan Seyfried
2016-01-04 21:08:02 +01:00
committed by svenhoefer
parent 9c2d9c8a25
commit f8fc83c496

View File

@@ -80,7 +80,7 @@ void CShellWindow::exec()
if (!f) { if (!f) {
if (res) if (res)
*res = -1; *res = -1;
dprintf(DEBUG_NORMAL, "[CShellWindow] [%s - %d] Error! my_popen returns: %d command: %s\n", __func__, __LINE__, *res, cmd.c_str()); dprintf(DEBUG_NORMAL, "[CShellWindow] [%s:%d] Error! my_popen errno: %d command: %s\n", __func__, __LINE__, errno, cmd.c_str());
return; return;
} }
@@ -159,7 +159,10 @@ void CShellWindow::exec()
//callback for line handler //callback for line handler
std::string s_output = std::string((output)); std::string s_output = std::string((output));
OnShellOutputLoop(&s_output, res, &ok); OnShellOutputLoop(&s_output, res, &ok);
dprintf(DEBUG_NORMAL, "[CShellWindow] [%s - %d] res=%d ok=%d\n", __func__, __LINE__, *res, ok); if (res)
dprintf(DEBUG_NORMAL, "[CShellWindow] [%s:%d] res=%d ok=%d\n", __func__, __LINE__, *res, ok);
else
dprintf(DEBUG_NORMAL, "[CShellWindow] [%s:%d] res=NULL ok=%d\n", __func__, __LINE__, ok);
if (lines.size() > lines_max) if (lines.size() > lines_max)
lines.pop_front(); lines.pop_front();