http_simple: fix no response in some case
verify_simple: check package size minimum 7 bytes
This commit is contained in:
parent
04133d806c
commit
877f0470c5
2 changed files with 9 additions and 8 deletions
|
@ -171,9 +171,10 @@ class http_simple(plain.plain):
|
||||||
return (b'', True, False)
|
return (b'', True, False)
|
||||||
|
|
||||||
datas = buf.split(b'\r\n\r\n', 1)
|
datas = buf.split(b'\r\n\r\n', 1)
|
||||||
if datas and len(datas) > 1:
|
if datas:
|
||||||
ret_buf = self.get_data_from_http_header(buf)
|
ret_buf = self.get_data_from_http_header(buf)
|
||||||
ret_buf += datas[1]
|
if len(datas) > 1:
|
||||||
|
ret_buf += datas[1]
|
||||||
if len(ret_buf) >= 15:
|
if len(ret_buf) >= 15:
|
||||||
self.has_recv_header = True
|
self.has_recv_header = True
|
||||||
return (ret_buf, True, False)
|
return (ret_buf, True, False)
|
||||||
|
|
|
@ -126,7 +126,7 @@ class verify_simple(verify_base):
|
||||||
out_buf = b''
|
out_buf = b''
|
||||||
while len(self.recv_buf) > 2:
|
while len(self.recv_buf) > 2:
|
||||||
length = struct.unpack('>H', self.recv_buf[:2])[0]
|
length = struct.unpack('>H', self.recv_buf[:2])[0]
|
||||||
if length >= 8192:
|
if length >= 8192 or length < 7:
|
||||||
self.raw_trans = True
|
self.raw_trans = True
|
||||||
self.recv_buf = b''
|
self.recv_buf = b''
|
||||||
if self.decrypt_packet_num == 0:
|
if self.decrypt_packet_num == 0:
|
||||||
|
@ -167,7 +167,7 @@ class verify_simple(verify_base):
|
||||||
out_buf = b''
|
out_buf = b''
|
||||||
while len(self.recv_buf) > 2:
|
while len(self.recv_buf) > 2:
|
||||||
length = struct.unpack('>H', self.recv_buf[:2])[0]
|
length = struct.unpack('>H', self.recv_buf[:2])[0]
|
||||||
if length >= 8192:
|
if length >= 8192 or length < 7:
|
||||||
self.raw_trans = True
|
self.raw_trans = True
|
||||||
self.recv_buf = b''
|
self.recv_buf = b''
|
||||||
if self.decrypt_packet_num == 0:
|
if self.decrypt_packet_num == 0:
|
||||||
|
@ -223,7 +223,7 @@ class verify_deflate(verify_base):
|
||||||
out_buf = b''
|
out_buf = b''
|
||||||
while len(self.recv_buf) > 2:
|
while len(self.recv_buf) > 2:
|
||||||
length = struct.unpack('>H', self.recv_buf[:2])[0]
|
length = struct.unpack('>H', self.recv_buf[:2])[0]
|
||||||
if length >= 32768:
|
if length >= 32768 or length < 6:
|
||||||
self.raw_trans = True
|
self.raw_trans = True
|
||||||
self.recv_buf = b''
|
self.recv_buf = b''
|
||||||
if self.decrypt_packet_num == 0:
|
if self.decrypt_packet_num == 0:
|
||||||
|
@ -255,7 +255,7 @@ class verify_deflate(verify_base):
|
||||||
out_buf = b''
|
out_buf = b''
|
||||||
while len(self.recv_buf) > 2:
|
while len(self.recv_buf) > 2:
|
||||||
length = struct.unpack('>H', self.recv_buf[:2])[0]
|
length = struct.unpack('>H', self.recv_buf[:2])[0]
|
||||||
if length >= 32768:
|
if length >= 32768 or length < 6:
|
||||||
self.raw_trans = True
|
self.raw_trans = True
|
||||||
self.recv_buf = b''
|
self.recv_buf = b''
|
||||||
if self.decrypt_packet_num == 0:
|
if self.decrypt_packet_num == 0:
|
||||||
|
@ -424,7 +424,7 @@ class auth_simple(verify_base):
|
||||||
out_buf = b''
|
out_buf = b''
|
||||||
while len(self.recv_buf) > 2:
|
while len(self.recv_buf) > 2:
|
||||||
length = struct.unpack('>H', self.recv_buf[:2])[0]
|
length = struct.unpack('>H', self.recv_buf[:2])[0]
|
||||||
if length >= 8192:
|
if length >= 8192 or length < 7:
|
||||||
self.raw_trans = True
|
self.raw_trans = True
|
||||||
self.recv_buf = b''
|
self.recv_buf = b''
|
||||||
if self.decrypt_packet_num == 0:
|
if self.decrypt_packet_num == 0:
|
||||||
|
@ -465,7 +465,7 @@ class auth_simple(verify_base):
|
||||||
out_buf = b''
|
out_buf = b''
|
||||||
while len(self.recv_buf) > 2:
|
while len(self.recv_buf) > 2:
|
||||||
length = struct.unpack('>H', self.recv_buf[:2])[0]
|
length = struct.unpack('>H', self.recv_buf[:2])[0]
|
||||||
if length >= 8192:
|
if length >= 8192 or length < 7:
|
||||||
self.raw_trans = True
|
self.raw_trans = True
|
||||||
self.recv_buf = b''
|
self.recv_buf = b''
|
||||||
if self.decrypt_packet_num == 0:
|
if self.decrypt_packet_num == 0:
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue