From: Michael Friedrich Date: Wed, 20 Jan 2016 15:38:31 +0000 (+0100) Subject: ExternalCommandListener: Fix crash when reading from socket X-Git-Tag: v2.4.2~108 X-Git-Url: https://granicus.if.org/sourcecode?a=commitdiff_plain;h=0516cb58e2328fb56d22bc6205dbf081fa29a825;p=icinga2 ExternalCommandListener: Fix crash when reading from socket refs #10700 --- diff --git a/lib/compat/externalcommandlistener.cpp b/lib/compat/externalcommandlistener.cpp index deece0217..cc484f1f6 100644 --- a/lib/compat/externalcommandlistener.cpp +++ b/lib/compat/externalcommandlistener.cpp @@ -110,7 +110,16 @@ void ExternalCommandListener::CommandPipeThread(const String& commandPath) sock->Poll(true, false); char buffer[8192]; - size_t rc = sock->Read(buffer, sizeof(buffer)); + size_t rc; + + try { + rc = sock->Read(buffer, sizeof(buffer)); + } catch (const std::exception& ex) { + Log(LogWarning, "ExternalCommandListener") + << "Cannot read from socket." << DiagnosticInformation(ex); + break; + } + if (rc <= 0) break;