Skip to content

Commit d188982

Browse files
committed
handle masked EOF from Rex sockets (TODO: kill that behavior)
1 parent 85b59c8 commit d188982

File tree

1 file changed

+8
-3
lines changed

1 file changed

+8
-3
lines changed

lib/rex/post/meterpreter/packet_parser.rb

Lines changed: 8 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -27,18 +27,23 @@ def reset
2727
end
2828

2929
#
30-
# Reads data from the wire and parse as much of the packet as possible.
30+
# Reads data from the socket and parses as much of the packet as possible.
3131
#
3232
def recv(sock)
33-
if self.packet.raw_bytes_required
33+
raw = nil
34+
if self.packet.raw_bytes_required > 0
3435
while (raw = sock.read(self.packet.raw_bytes_required))
3536
self.packet.add_raw(raw)
3637
break if self.packet.raw_bytes_required == 0
3738
end
3839
end
3940

4041
if self.packet.raw_bytes_required > 0
41-
return nil
42+
if raw == nil
43+
raise EOFError
44+
else
45+
return nil
46+
end
4247
end
4348

4449
packet = self.packet

0 commit comments

Comments
 (0)