|
rpmbuild |
6aa3dc9 |
From 9f080d4ed363f6a25874ae991806f30922a14671 Mon Sep 17 00:00:00 2001
|
|
rpmbuild |
6aa3dc9 |
From: Lumir Balhar <lbalhar@redhat.com>
|
|
rpmbuild |
6aa3dc9 |
Date: Thu, 24 Oct 2019 10:03:02 +0200
|
|
rpmbuild |
6aa3dc9 |
Subject: [PATCH 1/7] Fix prints - from statement to function
|
|
rpmbuild |
6aa3dc9 |
|
|
rpmbuild |
6aa3dc9 |
---
|
|
rpmbuild |
6aa3dc9 |
officeparser.py | 31 ++++++++++++++++---------------
|
|
rpmbuild |
6aa3dc9 |
1 file changed, 16 insertions(+), 15 deletions(-)
|
|
rpmbuild |
6aa3dc9 |
|
|
rpmbuild |
6aa3dc9 |
diff --git a/officeparser.py b/officeparser.py
|
|
rpmbuild |
6aa3dc9 |
index e521d88..5da5bf4 100755
|
|
rpmbuild |
6aa3dc9 |
--- a/officeparser.py
|
|
rpmbuild |
6aa3dc9 |
+++ b/officeparser.py
|
|
rpmbuild |
6aa3dc9 |
@@ -5,6 +5,7 @@
|
|
rpmbuild |
6aa3dc9 |
# - VBA: fixed infinite loop when output file already exists
|
|
rpmbuild |
6aa3dc9 |
# - improved logging output, set default level to INFO
|
|
rpmbuild |
6aa3dc9 |
|
|
rpmbuild |
6aa3dc9 |
+from __future__ import print_function
|
|
rpmbuild |
6aa3dc9 |
import sys
|
|
rpmbuild |
6aa3dc9 |
from struct import unpack
|
|
rpmbuild |
6aa3dc9 |
from optparse import OptionParser
|
|
rpmbuild |
6aa3dc9 |
@@ -268,7 +269,7 @@ def read_chain(self, sector_start):
|
|
rpmbuild |
6aa3dc9 |
|
|
rpmbuild |
6aa3dc9 |
def print_fat_sectors(self):
|
|
rpmbuild |
6aa3dc9 |
for sector in self.fat_sectors:
|
|
rpmbuild |
6aa3dc9 |
- print '{0:08X}'.format(sector)
|
|
rpmbuild |
6aa3dc9 |
+ print('{0:08X}'.format(sector))
|
|
rpmbuild |
6aa3dc9 |
|
|
rpmbuild |
6aa3dc9 |
def get_stream(self, index):
|
|
rpmbuild |
6aa3dc9 |
d = self.directory[index]
|
|
rpmbuild |
6aa3dc9 |
@@ -315,7 +316,7 @@ def __init__(self, data, parser_options=None):
|
|
rpmbuild |
6aa3dc9 |
self._sectFat = self.header[18:] # sects of first 109 FAT sectors
|
|
rpmbuild |
6aa3dc9 |
|
|
rpmbuild |
6aa3dc9 |
def pretty_print(self):
|
|
rpmbuild |
6aa3dc9 |
- print """HEADER DUMP
|
|
rpmbuild |
6aa3dc9 |
+ print("""HEADER DUMP
|
|
rpmbuild |
6aa3dc9 |
_abSig = {0}
|
|
rpmbuild |
6aa3dc9 |
_clid = {1}
|
|
rpmbuild |
6aa3dc9 |
_uMinorVersion = {2}
|
|
rpmbuild |
6aa3dc9 |
@@ -353,11 +354,11 @@ def pretty_print(self):
|
|
rpmbuild |
6aa3dc9 |
'{0:08X}'.format(self._sectMiniFatStart),
|
|
rpmbuild |
6aa3dc9 |
'{0:08X}'.format(self._csectMiniFat),
|
|
rpmbuild |
6aa3dc9 |
'{0:08X}'.format(self._sectDifStart),
|
|
rpmbuild |
6aa3dc9 |
- '{0:08X}'.format(self._csectDif))
|
|
rpmbuild |
6aa3dc9 |
+ '{0:08X}'.format(self._csectDif)))
|
|
rpmbuild |
6aa3dc9 |
|
|
rpmbuild |
6aa3dc9 |
for fat in self._sectFat:
|
|
rpmbuild |
6aa3dc9 |
if fat != FREESECT:
|
|
rpmbuild |
6aa3dc9 |
- print '_sectFat = {0:08X}'.format(fat)
|
|
rpmbuild |
6aa3dc9 |
+ print('_sectFat = {0:08X}'.format(fat))
|
|
rpmbuild |
6aa3dc9 |
|
|
rpmbuild |
6aa3dc9 |
STGTY_INVALID = 0
|
|
rpmbuild |
6aa3dc9 |
STGTY_STORAGE = 1
|
|
rpmbuild |
6aa3dc9 |
@@ -416,7 +417,7 @@ def __init__(self, data, index):
|
|
rpmbuild |
6aa3dc9 |
# last two bytes are padding
|
|
rpmbuild |
6aa3dc9 |
|
|
rpmbuild |
6aa3dc9 |
def pretty_print(self):
|
|
rpmbuild |
6aa3dc9 |
- print """
|
|
rpmbuild |
6aa3dc9 |
+ print("""
|
|
rpmbuild |
6aa3dc9 |
_ab = {0}
|
|
rpmbuild |
6aa3dc9 |
_cb = {1}
|
|
rpmbuild |
6aa3dc9 |
_mse = {2}
|
|
rpmbuild |
6aa3dc9 |
@@ -446,7 +447,7 @@ def pretty_print(self):
|
|
rpmbuild |
6aa3dc9 |
'{0}'.format(self._time[1]),
|
|
rpmbuild |
6aa3dc9 |
'{0:08X}'.format(self._sectStart),
|
|
rpmbuild |
6aa3dc9 |
'{0:08X} ({0} bytes)'.format(self._ulSize),
|
|
rpmbuild |
6aa3dc9 |
- '{0:04X}'.format(self._dptPropType))
|
|
rpmbuild |
6aa3dc9 |
+ '{0:04X}'.format(self._dptPropType)))
|
|
rpmbuild |
6aa3dc9 |
|
|
rpmbuild |
6aa3dc9 |
def _main():
|
|
rpmbuild |
6aa3dc9 |
|
|
rpmbuild |
6aa3dc9 |
@@ -561,22 +562,22 @@ def _main():
|
|
rpmbuild |
6aa3dc9 |
|
|
rpmbuild |
6aa3dc9 |
if options.print_directory:
|
|
rpmbuild |
6aa3dc9 |
for x in xrange(0, len(ofdoc.directory)):
|
|
rpmbuild |
6aa3dc9 |
- print "Directory Index {0:08X} ({0})".format(x)
|
|
rpmbuild |
6aa3dc9 |
+ print("Directory Index {0:08X} ({0})".format(x))
|
|
rpmbuild |
6aa3dc9 |
ofdoc.directory[x].pretty_print()
|
|
rpmbuild |
6aa3dc9 |
- print
|
|
rpmbuild |
6aa3dc9 |
+ print()
|
|
rpmbuild |
6aa3dc9 |
|
|
rpmbuild |
6aa3dc9 |
if options.print_fat:
|
|
rpmbuild |
6aa3dc9 |
for sector in xrange(0, len(ofdoc.fat)):
|
|
rpmbuild |
6aa3dc9 |
- print '{0:08X}: {1}'.format(sector, fat_value_to_str(ofdoc.fat[sector]))
|
|
rpmbuild |
6aa3dc9 |
+ print('{0:08X}: {1}'.format(sector, fat_value_to_str(ofdoc.fat[sector])))
|
|
rpmbuild |
6aa3dc9 |
|
|
rpmbuild |
6aa3dc9 |
if options.print_mini_fat:
|
|
rpmbuild |
6aa3dc9 |
for sector in xrange(0, len(ofdoc.minifat)):
|
|
rpmbuild |
6aa3dc9 |
- print '{0:08X}: {1}'.format(sector, fat_value_to_str(ofdoc.minifat[sector]))
|
|
rpmbuild |
6aa3dc9 |
+ print('{0:08X}: {1}'.format(sector, fat_value_to_str(ofdoc.minifat[sector])))
|
|
rpmbuild |
6aa3dc9 |
|
|
rpmbuild |
6aa3dc9 |
if options.print_streams:
|
|
rpmbuild |
6aa3dc9 |
for d in ofdoc.directory:
|
|
rpmbuild |
6aa3dc9 |
if d._mse == STGTY_STREAM:
|
|
rpmbuild |
6aa3dc9 |
- print '{0}: {1}'.format(d.index, d.name)
|
|
rpmbuild |
6aa3dc9 |
+ print('{0}: {1}'.format(d.index, d.name))
|
|
rpmbuild |
6aa3dc9 |
|
|
rpmbuild |
6aa3dc9 |
if options.print_expected_file_size:
|
|
rpmbuild |
6aa3dc9 |
expected_file_size = (len([x for x in ofdoc.fat if x != FREESECT]) * ofdoc.sector_size) + 512
|
|
rpmbuild |
6aa3dc9 |
@@ -584,8 +585,8 @@ def _main():
|
|
rpmbuild |
6aa3dc9 |
size_diff = abs(expected_file_size - actual_file_size)
|
|
rpmbuild |
6aa3dc9 |
percent_diff = (float(size_diff) / float(expected_file_size)) * 100.0
|
|
rpmbuild |
6aa3dc9 |
|
|
rpmbuild |
6aa3dc9 |
- print "expected file size {0} actual {1} difference {2} ({3:0.2f}%)".format(
|
|
rpmbuild |
6aa3dc9 |
- expected_file_size, actual_file_size, size_diff, percent_diff)
|
|
rpmbuild |
6aa3dc9 |
+ print("expected file size {0} actual {1} difference {2} ({3:0.2f}%)".format(
|
|
rpmbuild |
6aa3dc9 |
+ expected_file_size, actual_file_size, size_diff, percent_diff))
|
|
rpmbuild |
6aa3dc9 |
|
|
rpmbuild |
6aa3dc9 |
#
|
|
rpmbuild |
6aa3dc9 |
# analysis options
|
|
rpmbuild |
6aa3dc9 |
@@ -620,7 +621,7 @@ def _main():
|
|
rpmbuild |
6aa3dc9 |
logging.warning('invalid FAT sector reference {0:08X}'.format(value))
|
|
rpmbuild |
6aa3dc9 |
|
|
rpmbuild |
6aa3dc9 |
if options.print_invalid_fat_count:
|
|
rpmbuild |
6aa3dc9 |
- print "invalid FAT sector references: {0}".format(invalid_fat_sectors)
|
|
rpmbuild |
6aa3dc9 |
+ print("invalid FAT sector references: {0}".format(invalid_fat_sectors))
|
|
rpmbuild |
6aa3dc9 |
|
|
rpmbuild |
6aa3dc9 |
invalid_fat_entries = 0
|
|
rpmbuild |
6aa3dc9 |
if options.check_fat or options.print_invalid_fat_count:
|
|
rpmbuild |
6aa3dc9 |
@@ -634,7 +635,7 @@ def _main():
|
|
rpmbuild |
6aa3dc9 |
logging.warning('invalid FAT sector {0:08X} value {1:08X}'.format(value, ptr))
|
|
rpmbuild |
6aa3dc9 |
|
|
rpmbuild |
6aa3dc9 |
if options.print_invalid_fat_count:
|
|
rpmbuild |
6aa3dc9 |
- print "invalid FAT entries: {0}".format(invalid_fat_entries)
|
|
rpmbuild |
6aa3dc9 |
+ print("invalid FAT entries: {0}".format(invalid_fat_entries))
|
|
rpmbuild |
6aa3dc9 |
|
|
rpmbuild |
6aa3dc9 |
if options.check_orphaned_chains:
|
|
rpmbuild |
6aa3dc9 |
buffer = [False for fat in ofdoc.fat]
|
|
rpmbuild |
6aa3dc9 |
|
|
rpmbuild |
6aa3dc9 |
From b64db92d77d480f93a973b995fd63c964b16b6fb Mon Sep 17 00:00:00 2001
|
|
rpmbuild |
6aa3dc9 |
From: Lumir Balhar <lbalhar@redhat.com>
|
|
rpmbuild |
6aa3dc9 |
Date: Thu, 24 Oct 2019 10:47:57 +0200
|
|
rpmbuild |
6aa3dc9 |
Subject: [PATCH 2/7] Use BytesIO from compatible io module instead of StringIO
|
|
rpmbuild |
6aa3dc9 |
|
|
rpmbuild |
6aa3dc9 |
---
|
|
rpmbuild |
6aa3dc9 |
officeparser.py | 6 +++---
|
|
rpmbuild |
6aa3dc9 |
1 file changed, 3 insertions(+), 3 deletions(-)
|
|
rpmbuild |
6aa3dc9 |
|
|
rpmbuild |
6aa3dc9 |
diff --git a/officeparser.py b/officeparser.py
|
|
rpmbuild |
6aa3dc9 |
index 5da5bf4..82dce4a 100755
|
|
rpmbuild |
6aa3dc9 |
--- a/officeparser.py
|
|
rpmbuild |
6aa3dc9 |
+++ b/officeparser.py
|
|
rpmbuild |
6aa3dc9 |
@@ -9,7 +9,7 @@
|
|
rpmbuild |
6aa3dc9 |
import sys
|
|
rpmbuild |
6aa3dc9 |
from struct import unpack
|
|
rpmbuild |
6aa3dc9 |
from optparse import OptionParser
|
|
rpmbuild |
6aa3dc9 |
-from cStringIO import StringIO
|
|
rpmbuild |
6aa3dc9 |
+from io import BytesIO
|
|
rpmbuild |
6aa3dc9 |
import logging
|
|
rpmbuild |
6aa3dc9 |
import re
|
|
rpmbuild |
6aa3dc9 |
import os
|
|
rpmbuild |
6aa3dc9 |
@@ -218,7 +218,7 @@ def __init__(self, file, parser_options=None):
|
|
rpmbuild |
6aa3dc9 |
# chain in the Fat, with the beginning of the chain stored in the
|
|
rpmbuild |
6aa3dc9 |
# header.
|
|
rpmbuild |
6aa3dc9 |
|
|
rpmbuild |
6aa3dc9 |
- data = StringIO(self.read_chain(self.header._sectMiniFatStart))
|
|
rpmbuild |
6aa3dc9 |
+ data = BytesIO(self.read_chain(self.header._sectMiniFatStart))
|
|
rpmbuild |
6aa3dc9 |
while True:
|
|
rpmbuild |
6aa3dc9 |
chunk = data.read(self.sector_size)
|
|
rpmbuild |
6aa3dc9 |
if chunk == '':
|
|
rpmbuild |
6aa3dc9 |
@@ -249,7 +249,7 @@ def __impl_read_chain(self, start, read_sector_f, read_fat_f):
|
|
rpmbuild |
6aa3dc9 |
"""Returns the entire contents of a chain starting at the given sector."""
|
|
rpmbuild |
6aa3dc9 |
sector = start
|
|
rpmbuild |
6aa3dc9 |
check = [ sector ] # keep a list of sectors we've already read
|
|
rpmbuild |
6aa3dc9 |
- buffer = StringIO()
|
|
rpmbuild |
6aa3dc9 |
+ buffer = BytesIO()
|
|
rpmbuild |
6aa3dc9 |
while sector != ENDOFCHAIN:
|
|
rpmbuild |
6aa3dc9 |
buffer.write(read_sector_f(sector))
|
|
rpmbuild |
6aa3dc9 |
next = read_fat_f(sector)
|
|
rpmbuild |
6aa3dc9 |
|
|
rpmbuild |
6aa3dc9 |
From 032a0d058bc59d1c3bef5f0b68298720947ac2c5 Mon Sep 17 00:00:00 2001
|
|
rpmbuild |
6aa3dc9 |
From: Lumir Balhar <lbalhar@redhat.com>
|
|
rpmbuild |
6aa3dc9 |
Date: Thu, 24 Oct 2019 10:48:44 +0200
|
|
rpmbuild |
6aa3dc9 |
Subject: [PATCH 3/7] Different parsing bytes to name for Python 2/3
|
|
rpmbuild |
6aa3dc9 |
|
|
rpmbuild |
6aa3dc9 |
---
|
|
rpmbuild |
6aa3dc9 |
officeparser.py | 9 ++++++++-
|
|
rpmbuild |
6aa3dc9 |
1 file changed, 8 insertions(+), 1 deletion(-)
|
|
rpmbuild |
6aa3dc9 |
|
|
rpmbuild |
6aa3dc9 |
diff --git a/officeparser.py b/officeparser.py
|
|
rpmbuild |
6aa3dc9 |
index 82dce4a..c9f1d10 100755
|
|
rpmbuild |
6aa3dc9 |
--- a/officeparser.py
|
|
rpmbuild |
6aa3dc9 |
+++ b/officeparser.py
|
|
rpmbuild |
6aa3dc9 |
@@ -28,6 +28,8 @@
|
|
rpmbuild |
6aa3dc9 |
|
|
rpmbuild |
6aa3dc9 |
BINFILE_NAME = "/vbaProject.bin"
|
|
rpmbuild |
6aa3dc9 |
|
|
rpmbuild |
6aa3dc9 |
+PY3 = sys.version_info[0] == 3
|
|
rpmbuild |
6aa3dc9 |
+
|
|
rpmbuild |
6aa3dc9 |
def fat_value_to_str(value):
|
|
rpmbuild |
6aa3dc9 |
if value == DIFSECT:
|
|
rpmbuild |
6aa3dc9 |
return '0xFFFFFFFC (DIF)'
|
|
rpmbuild |
6aa3dc9 |
@@ -402,7 +404,12 @@ def __init__(self, data, index):
|
|
rpmbuild |
6aa3dc9 |
self._ab = self.directory[0]
|
|
rpmbuild |
6aa3dc9 |
self._cb = self.directory[1]
|
|
rpmbuild |
6aa3dc9 |
# convert wide chars into ASCII
|
|
rpmbuild |
6aa3dc9 |
- self.name = ''.join([x for x in self._ab[0:self._cb] if ord(x) != 0])
|
|
rpmbuild |
6aa3dc9 |
+ if PY3:
|
|
rpmbuild |
6aa3dc9 |
+ # In Python 3 we have numbers we need to convert to chars
|
|
rpmbuild |
6aa3dc9 |
+ self.name = ''.join([chr(x) for x in self._ab[0:self._cb] if x != 0])
|
|
rpmbuild |
6aa3dc9 |
+ else:
|
|
rpmbuild |
6aa3dc9 |
+ # In Python 2 we have chars we need to convert to numbers to check them
|
|
rpmbuild |
6aa3dc9 |
+ self.name = ''.join([x for x in self._ab[0:self._cb] if ord(x) != 0])
|
|
rpmbuild |
6aa3dc9 |
self._mse = self.directory[2]
|
|
rpmbuild |
6aa3dc9 |
self._bflags = self.directory[3]
|
|
rpmbuild |
6aa3dc9 |
self._sidLeftSib = self.directory[4]
|
|
rpmbuild |
6aa3dc9 |
|
|
rpmbuild |
6aa3dc9 |
From 6afb84b3237cf280bafd95b400e454a8484199be Mon Sep 17 00:00:00 2001
|
|
rpmbuild |
6aa3dc9 |
From: Lumir Balhar <lbalhar@redhat.com>
|
|
rpmbuild |
6aa3dc9 |
Date: Thu, 24 Oct 2019 10:49:57 +0200
|
|
rpmbuild |
6aa3dc9 |
Subject: [PATCH 4/7] Use floor division where we need integer as a result
|
|
rpmbuild |
6aa3dc9 |
|
|
rpmbuild |
6aa3dc9 |
---
|
|
rpmbuild |
6aa3dc9 |
officeparser.py | 6 +++---
|
|
rpmbuild |
6aa3dc9 |
1 file changed, 3 insertions(+), 3 deletions(-)
|
|
rpmbuild |
6aa3dc9 |
|
|
rpmbuild |
6aa3dc9 |
diff --git a/officeparser.py b/officeparser.py
|
|
rpmbuild |
6aa3dc9 |
index c9f1d10..2d9aa90 100755
|
|
rpmbuild |
6aa3dc9 |
--- a/officeparser.py
|
|
rpmbuild |
6aa3dc9 |
+++ b/officeparser.py
|
|
rpmbuild |
6aa3dc9 |
@@ -196,14 +196,14 @@ def __init__(self, file, parser_options=None):
|
|
rpmbuild |
6aa3dc9 |
if len(data) != self.sector_size:
|
|
rpmbuild |
6aa3dc9 |
logging.error('broken FAT (invalid sector size {0} != {1})'.format(len(data), self.sector_size))
|
|
rpmbuild |
6aa3dc9 |
else:
|
|
rpmbuild |
6aa3dc9 |
- for value in unpack('<{0}L'.format(self.sector_size / 4), data):
|
|
rpmbuild |
6aa3dc9 |
+ for value in unpack('<{0}L'.format(self.sector_size // 4), data):
|
|
rpmbuild |
6aa3dc9 |
self.fat.append(value)
|
|
rpmbuild |
6aa3dc9 |
|
|
rpmbuild |
6aa3dc9 |
# get the list of directory sectors
|
|
rpmbuild |
6aa3dc9 |
self.directory = []
|
|
rpmbuild |
6aa3dc9 |
buffer = self.read_chain(self.header._sectDirStart)
|
|
rpmbuild |
6aa3dc9 |
directory_index = 0
|
|
rpmbuild |
6aa3dc9 |
- for chunk in unpack("128s" * (len(buffer) / 128), buffer):
|
|
rpmbuild |
6aa3dc9 |
+ for chunk in unpack("128s" * (len(buffer) // 128), buffer):
|
|
rpmbuild |
6aa3dc9 |
self.directory.append(Directory(chunk, directory_index))
|
|
rpmbuild |
6aa3dc9 |
directory_index += 1
|
|
rpmbuild |
6aa3dc9 |
|
|
rpmbuild |
6aa3dc9 |
@@ -228,7 +228,7 @@ def __init__(self, file, parser_options=None):
|
|
rpmbuild |
6aa3dc9 |
if len(chunk) != self.sector_size:
|
|
rpmbuild |
6aa3dc9 |
logging.warning("encountered EOF while parsing minifat")
|
|
rpmbuild |
6aa3dc9 |
continue
|
|
rpmbuild |
6aa3dc9 |
- for value in unpack('<{0}L'.format(self.sector_size / 4), chunk):
|
|
rpmbuild |
6aa3dc9 |
+ for value in unpack('<{0}L'.format(self.sector_size // 4), chunk):
|
|
rpmbuild |
6aa3dc9 |
self.minifat.append(value)
|
|
rpmbuild |
6aa3dc9 |
|
|
rpmbuild |
6aa3dc9 |
def read_sector(self, sector):
|
|
rpmbuild |
6aa3dc9 |
|
|
rpmbuild |
6aa3dc9 |
From ace8691eacba4dce0e6bf95292dab9f3a34396eb Mon Sep 17 00:00:00 2001
|
|
rpmbuild |
6aa3dc9 |
From: Lumir Balhar <lbalhar@redhat.com>
|
|
rpmbuild |
6aa3dc9 |
Date: Thu, 24 Oct 2019 10:50:34 +0200
|
|
rpmbuild |
6aa3dc9 |
Subject: [PATCH 5/7] chunk is '' in Python 2 and b'' in Python 3 so better is
|
|
rpmbuild |
6aa3dc9 |
to check its length
|
|
rpmbuild |
6aa3dc9 |
|
|
rpmbuild |
6aa3dc9 |
---
|
|
rpmbuild |
6aa3dc9 |
officeparser.py | 2 +-
|
|
rpmbuild |
6aa3dc9 |
1 file changed, 1 insertion(+), 1 deletion(-)
|
|
rpmbuild |
6aa3dc9 |
|
|
rpmbuild |
6aa3dc9 |
diff --git a/officeparser.py b/officeparser.py
|
|
rpmbuild |
6aa3dc9 |
index 2d9aa90..fb1d07c 100755
|
|
rpmbuild |
6aa3dc9 |
--- a/officeparser.py
|
|
rpmbuild |
6aa3dc9 |
+++ b/officeparser.py
|
|
rpmbuild |
6aa3dc9 |
@@ -223,7 +223,7 @@ def __init__(self, file, parser_options=None):
|
|
rpmbuild |
6aa3dc9 |
data = BytesIO(self.read_chain(self.header._sectMiniFatStart))
|
|
rpmbuild |
6aa3dc9 |
while True:
|
|
rpmbuild |
6aa3dc9 |
chunk = data.read(self.sector_size)
|
|
rpmbuild |
6aa3dc9 |
- if chunk == '':
|
|
rpmbuild |
6aa3dc9 |
+ if len(chunk) == 0:
|
|
rpmbuild |
6aa3dc9 |
break
|
|
rpmbuild |
6aa3dc9 |
if len(chunk) != self.sector_size:
|
|
rpmbuild |
6aa3dc9 |
logging.warning("encountered EOF while parsing minifat")
|
|
rpmbuild |
6aa3dc9 |
|
|
rpmbuild |
6aa3dc9 |
From 0a4c0189d7f6aefb09e4b7299ca0626a39a6d20b Mon Sep 17 00:00:00 2001
|
|
rpmbuild |
6aa3dc9 |
From: Lumir Balhar <lbalhar@redhat.com>
|
|
rpmbuild |
6aa3dc9 |
Date: Thu, 24 Oct 2019 10:57:35 +0200
|
|
rpmbuild |
6aa3dc9 |
Subject: [PATCH 6/7] Use compatible way for writing binary data to stdout
|
|
rpmbuild |
6aa3dc9 |
|
|
rpmbuild |
6aa3dc9 |
---
|
|
rpmbuild |
6aa3dc9 |
officeparser.py | 8 ++++----
|
|
rpmbuild |
6aa3dc9 |
1 file changed, 4 insertions(+), 4 deletions(-)
|
|
rpmbuild |
6aa3dc9 |
|
|
rpmbuild |
6aa3dc9 |
diff --git a/officeparser.py b/officeparser.py
|
|
rpmbuild |
6aa3dc9 |
index fb1d07c..43d45ea 100755
|
|
rpmbuild |
6aa3dc9 |
--- a/officeparser.py
|
|
rpmbuild |
6aa3dc9 |
+++ b/officeparser.py
|
|
rpmbuild |
6aa3dc9 |
@@ -685,20 +685,20 @@ def _main():
|
|
rpmbuild |
6aa3dc9 |
# dump options
|
|
rpmbuild |
6aa3dc9 |
#
|
|
rpmbuild |
6aa3dc9 |
if options.dump_sector:
|
|
rpmbuild |
6aa3dc9 |
- sys.stdout.write(ofdoc.read_sector(options.dump_sector))
|
|
rpmbuild |
6aa3dc9 |
+ os.write(sys.stdout.fileno(), ofdoc.read_sector(options.dump_sector))
|
|
rpmbuild |
6aa3dc9 |
sys.exit(0)
|
|
rpmbuild |
6aa3dc9 |
|
|
rpmbuild |
6aa3dc9 |
if options.dump_ministream:
|
|
rpmbuild |
6aa3dc9 |
- sys.stdout.write(ofdoc.ministream)
|
|
rpmbuild |
6aa3dc9 |
+ os.write(sys.stdout.fileno(), (ofdoc.ministream))
|
|
rpmbuild |
6aa3dc9 |
sys.exit(0)
|
|
rpmbuild |
6aa3dc9 |
|
|
rpmbuild |
6aa3dc9 |
if options.dump_stream:
|
|
rpmbuild |
6aa3dc9 |
- sys.stdout.write(ofdoc.get_stream(options.dump_stream))
|
|
rpmbuild |
6aa3dc9 |
+ os.write(sys.stdout.fileno(), (ofdoc.get_stream(options.dump_stream)))
|
|
rpmbuild |
6aa3dc9 |
sys.exit(0)
|
|
rpmbuild |
6aa3dc9 |
|
|
rpmbuild |
6aa3dc9 |
if options.dump_stream_by_name:
|
|
rpmbuild |
6aa3dc9 |
d = ofdoc.find_stream_by_name(options.dump_stream_by_name)
|
|
rpmbuild |
6aa3dc9 |
- sys.stdout.write(ofdoc.get_stream(d.index))
|
|
rpmbuild |
6aa3dc9 |
+ os.write(sys.stdout.fileno(), (ofdoc.get_stream(d.index)))
|
|
rpmbuild |
6aa3dc9 |
sys.exit(0)
|
|
rpmbuild |
6aa3dc9 |
|
|
rpmbuild |
6aa3dc9 |
#
|
|
rpmbuild |
6aa3dc9 |
|
|
rpmbuild |
6aa3dc9 |
From fa56b4b1717eb195cd12605a8e3706a33662ffb8 Mon Sep 17 00:00:00 2001
|
|
rpmbuild |
6aa3dc9 |
From: Lumir Balhar <lbalhar@redhat.com>
|
|
rpmbuild |
6aa3dc9 |
Date: Thu, 24 Oct 2019 12:45:10 +0200
|
|
rpmbuild |
6aa3dc9 |
Subject: [PATCH 7/7] Write bytes to file opened as binary
|
|
rpmbuild |
6aa3dc9 |
|
|
rpmbuild |
6aa3dc9 |
---
|
|
rpmbuild |
6aa3dc9 |
officeparser.py | 4 ++--
|
|
rpmbuild |
6aa3dc9 |
1 file changed, 2 insertions(+), 2 deletions(-)
|
|
rpmbuild |
6aa3dc9 |
|
|
rpmbuild |
6aa3dc9 |
diff --git a/officeparser.py b/officeparser.py
|
|
rpmbuild |
6aa3dc9 |
index 43d45ea..fdf155a 100755
|
|
rpmbuild |
6aa3dc9 |
--- a/officeparser.py
|
|
rpmbuild |
6aa3dc9 |
+++ b/officeparser.py
|
|
rpmbuild |
6aa3dc9 |
@@ -801,8 +801,8 @@ def _main():
|
|
rpmbuild |
6aa3dc9 |
f.write(ofdoc.get_stream(d.index))
|
|
rpmbuild |
6aa3dc9 |
f.close()
|
|
rpmbuild |
6aa3dc9 |
if options.create_manifest:
|
|
rpmbuild |
6aa3dc9 |
- manifest.write(os.path.basename(filename))
|
|
rpmbuild |
6aa3dc9 |
- manifest.write("\n")
|
|
rpmbuild |
6aa3dc9 |
+ manifest.write(os.path.basename(filename).encode())
|
|
rpmbuild |
6aa3dc9 |
+ manifest.write(b"\n")
|
|
rpmbuild |
6aa3dc9 |
logging.debug("created file {0}".format(filename))
|
|
rpmbuild |
6aa3dc9 |
|
|
rpmbuild |
6aa3dc9 |
while options.extract_macros:
|