From 4ce43b8d02c4792050dcd24f5d6336c5517de93c Mon Sep 17 00:00:00 2001 From: Michael Friedrich Date: Wed, 20 Jan 2016 16:38:31 +0100 Subject: [PATCH] ExternalCommandListener: Fix crash when reading from socket refs #10700 --- lib/compat/externalcommandlistener.cpp | 11 ++++++++++- 1 file changed, 10 insertions(+), 1 deletion(-) 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;