From 8f26482402179dc64b9488be05ef9686922446ec Mon Sep 17 00:00:00 2001 From: Jakub Filak Date: Fri, 24 Jul 2015 13:50:00 +0200 Subject: [PATCH] vmcore: read vmcore by chunks Reading vmcore by lines was not a good idea and the switch to Python 3 makes it impossible because of the binary format of that file (the file does not contain only valid Unicode strings and that raises UnicodeDecodeError from the for statement). Signed-off-by: Jakub Filak --- src/hooks/abrt_harvest_vmcore.py.in | 9 ++++++--- 1 file changed, 6 insertions(+), 3 deletions(-) diff --git a/src/hooks/abrt_harvest_vmcore.py.in b/src/hooks/abrt_harvest_vmcore.py.in index c5e7d53..61a6e57 100644 --- a/src/hooks/abrt_harvest_vmcore.py.in +++ b/src/hooks/abrt_harvest_vmcore.py.in @@ -214,9 +214,12 @@ def harvest_vmcore(): hashobj = hashlib.sha1() # Iterate over the file a line at a time in order to not load the whole # vmcore file - with open(os.path.join(f_full, 'vmcore'), 'r') as corefile: - for line in corefile: - hashobj.update(line) + with open(os.path.join(f_full, 'vmcore'), 'rb') as corefile: + while True: + chunk = corefile.read(8192) + if not chunk: + break + hashobj.update(chunk) dd = create_abrtd_info(destdirnew, hashobj.hexdigest()) if dd is None: -- 2.4.6