diff --git a/src/prefork.py b/src/prefork.py index 65b259e755be4aa69b21ef0ccc18a0b9737df2ff..0d98f79c2bbb06c3216d66c5ff6e5361070728db 100644 --- a/src/prefork.py +++ b/src/prefork.py @@ -35,7 +35,15 @@ def _send_packet(sock, data): def _recv_packet(sock): from struct import calcsize, unpack - size, = unpack("I", sock.recv(calcsize("I"))) + size_bytes_size = calcsize("I") + size_bytes = sock.recv(size_bytes_size) + + if len(size_bytes) < size_bytes_size: + from warnings import warn + warn("Prefork server exiting upon apparent death of parent") + raise SystemExit + + size, = unpack("I", size_bytes) packet = "" while len(packet) < size: