From fb674c6b5217b1995be29e90adb0ca942c56cc61 Mon Sep 17 00:00:00 2001 From: clowwindy Date: Thu, 24 Apr 2014 13:00:36 +0800 Subject: [PATCH] close #104 --- shadowsocks/server.py | 12 ++++++++++-- 1 file changed, 10 insertions(+), 2 deletions(-) diff --git a/shadowsocks/server.py b/shadowsocks/server.py index 70b6047..1574b79 100755 --- a/shadowsocks/server.py +++ b/shadowsocks/server.py @@ -103,9 +103,17 @@ class Socks5Server(SocketServer.StreamRequestHandler): self.server.method) sock = self.connection iv_len = self.encryptor.iv_len() + data = sock.recv(iv_len) + if iv_len > 0 and not data: + sock.close() + return if iv_len: - self.decrypt(sock.recv(iv_len)) - addrtype = ord(self.decrypt(sock.recv(1))) + self.decrypt(data) + data = sock.recv(1) + if not data: + sock.close() + return + addrtype = ord(self.decrypt(data)) if addrtype == 1: addr = socket.inet_ntoa(self.decrypt(self.rfile.read(4))) elif addrtype == 3: