From f8fc83c496b2af9daa13b56d27d15dd1a4685649 Mon Sep 17 00:00:00 2001 From: Stefan Seyfried Date: Mon, 4 Jan 2016 21:08:02 +0100 Subject: [PATCH] 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 --- src/gui/widget/shellwindow.cpp | 7 +++++-- 1 file changed, 5 insertions(+), 2 deletions(-) diff --git a/src/gui/widget/shellwindow.cpp b/src/gui/widget/shellwindow.cpp index 4c477f7ba..a2cb0165b 100644 --- a/src/gui/widget/shellwindow.cpp +++ b/src/gui/widget/shellwindow.cpp @@ -80,7 +80,7 @@ void CShellWindow::exec() if (!f) { if (res) *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; } @@ -159,7 +159,10 @@ void CShellWindow::exec() //callback for line handler std::string s_output = std::string((output)); 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) lines.pop_front();