File Backported-fix-for-CORE-4788-Superclassic-server-han.patch of Package firebird
From: alexpeshkoff <alexpeshkoff@65644016-39b1-43b1-bf79-96bc8fe82c15>
Date: Tue, 12 May 2015 12:17:47 +0000
Subject: Backported fix for CORE-4788: Superclassic server hangs
when receiving network packet
Patch-mainline: v2.5.5
Git-commit: 2f892f76c8b937a34f96341e91a76cab0638b8af
git-svn-id: svn+ssh://svn.code.sf.net/p/firebird/code/firebird/branches/B2_5_Release@61526 65644016-39b1-43b1-bf79-96bc8fe82c15
---
src/remote/inet.cpp | 7 +++++++
1 file changed, 7 insertions(+)
diff --git a/src/remote/inet.cpp b/src/remote/inet.cpp
index 6646d897b1f7..075d10ecac07 100644
--- a/src/remote/inet.cpp
+++ b/src/remote/inet.cpp
@@ -3124,6 +3124,13 @@ static bool packet_receive(rem_port* port, UCHAR* buffer, SSHORT buffer_length,
const timeval savetime = timeout;
const SOCKET ph = port->port_handle;
+ if (ph == INVALID_SOCKET)
+ {
+ if (!(port->port_flags & PORT_disconnect)) {
+ inet_error(port, "invalid socket in packet_receive", isc_net_read_err, EINVAL);
+ }
+ return false;
+ }
// Unsed to send a dummy packet, but too big to be defined in the loop.
PACKET packet;
--
2.4.6