summaryrefslogtreecommitdiff
path: root/lib/py
diff options
context:
space:
mode:
authorshangxu <shangxu@domob.cn>2020-11-13 18:03:01 +0800
committerJens Geyer <Jens-G@users.noreply.github.com>2022-04-21 09:13:52 +0200
commitb664cfe2533e4bbf00fd5e7e0211bf7161ee2a04 (patch)
tree34d4ee28eca26e9259ef2ab5d17ebb264e54ee26 /lib/py
parent0dc52985ca06cb948eae251dce789f7f863fc243 (diff)
downloadthrift-b664cfe2533e4bbf00fd5e7e0211bf7161ee2a04.tar.gz
fix Out Of Memory when use TNonblockingServer
Diffstat (limited to 'lib/py')
-rw-r--r--lib/py/src/server/TNonblockingServer.py4
1 files changed, 4 insertions, 0 deletions
diff --git a/lib/py/src/server/TNonblockingServer.py b/lib/py/src/server/TNonblockingServer.py
index f62d486eb..ac0649651 100644
--- a/lib/py/src/server/TNonblockingServer.py
+++ b/lib/py/src/server/TNonblockingServer.py
@@ -151,6 +151,10 @@ class Connection(object):
while len(self._rbuf) >= self._reading.end:
if self._reading.is_header:
mlen, = struct.unpack('!i', self._rbuf[:4])
+ if mlen < 0:
+ logger.error('could not read the head from frame')
+ self.close()
+ break
self._reading = Message(self._reading.end, mlen, False)
self.status = WAIT_MESSAGE
else: