2
0
mirror of https://github.com/checkpoint-restore/criu synced 2025-08-22 09:58:09 +00:00

crit: fix empty string comparison

In Python 3 b'' == '' is False. This causes the info action to fail with

  File "/usr/lib/python3.11/site-packages/crit-3.17-py3.11.egg/pycriu/images/images.py", line 178, in count
    size, = struct.unpack('i', buf)
            ^^^^^^^^^^^^^^^^^^^^^^^
  struct.error: unpack requires a buffer of 4 bytes

Reported-by: Sankalp Acharya (@sankalp-12)
Signed-off-by: Radostin Stoyanov <rstoyanov@fedoraproject.org>
This commit is contained in:
Radostin Stoyanov 2023-02-23 11:11:36 +00:00 committed by Andrei Vagin
parent fa4af04302
commit 9b919ab748

View File

@ -98,7 +98,7 @@ class entry_handler:
# Read payload
pbuff = self.payload()
buf = f.read(4)
if buf == b'':
if len(buf) == 0:
break
size, = struct.unpack('i', buf)
pbuff.ParseFromString(f.read(size))
@ -172,7 +172,7 @@ class entry_handler:
while True:
buf = f.read(4)
if buf == '':
if len(buf) == 0:
break
size, = struct.unpack('i', buf)
f.seek(size, 1)
@ -195,7 +195,7 @@ class pagemap_handler:
pbuff = pb.pagemap_head()
while True:
buf = f.read(4)
if buf == b'':
if len(buf) == 0:
break
size, = struct.unpack('i', buf)
pbuff.ParseFromString(f.read(size))
@ -422,7 +422,7 @@ class ipc_msg_queue_handler:
messages = []
for x in range(0, entry['qnum']):
buf = f.read(4)
if buf == '':
if len(buf) == 0:
break
size, = struct.unpack('i', buf)
msg = pb.ipc_msg()
@ -455,7 +455,7 @@ class ipc_msg_queue_handler:
pl_len = 0
for x in range(0, entry['qnum']):
buf = f.read(4)
if buf == '':
if len(buf) == 0:
break
size, = struct.unpack('i', buf)
msg = pb.ipc_msg()