[Libreoffice-commits] mso-dumper.git: msodumper/binarystream.py
Libreoffice Gerrit user
logerrit at kemper.freedesktop.org
Fri Sep 3 11:59:50 UTC 2021
msodumper/binarystream.py | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
New commits:
commit 0ffc7eac2596ff590eb7c7612940c7d785fea167
Author: Hossein <hossein at libreoffice.org>
AuthorDate: Thu Sep 2 20:12:41 2021 +0200
Commit: Miklos Vajna <vmiklos at collabora.com>
CommitDate: Fri Sep 3 13:59:32 2021 +0200
Handling exception on invalid values of the fields
There are situations where a field has an invalid value. In such a
case, an exception is occurs, the program halts execution, and the
output will be incomplete.
With this fix, if a key is not found for the dict, name="INVALID"
will be use in the output XML.
This is an example execution for attachment 171572 from tdf#142021
, "EMF with PolyfillMode set to 0 before the bottom star record"
PolygonFillMode can be either 1 or 2, but the field value has the
value of 0.
PolygonFillMode = {
0x01: "ALTERNATE",
0x02: "WINDING"
}
$ /opt/libreoffice7.2/program/python ./emf-dump.py star_pfm0.emf
Traceback (most recent call last):
File "./emf-dump.py", line 29, in <module>
main(sys.argv)
File "./emf-dump.py", line 25, in main
dumper.dump()
File "./emf-dump.py", line 20, in dump
strm.dump()
File "msodumper/emfrecord.py", line 76, in dump
handler.dump()
File "msodumper/emfrecord.py", line 400, in dump
self.printAndSet("PolygonFillMode", self.readuInt32(), dict=PolygonFillMode)
File "msodumper/binarystream.py", line 32, in printAndSet
attrs += ' name="%s"' % dict[value]
KeyError: 0
Change-Id: Id965ba0c47eace3029dd5fa12266f1a144eee41e
Reviewed-on: https://gerrit.libreoffice.org/c/mso-dumper/+/121529
Tested-by: Miklos Vajna <vmiklos at collabora.com>
Reviewed-by: Miklos Vajna <vmiklos at collabora.com>
diff --git a/msodumper/binarystream.py b/msodumper/binarystream.py
index bdd8f37..4946a45 100644
--- a/msodumper/binarystream.py
+++ b/msodumper/binarystream.py
@@ -29,7 +29,7 @@ class BinaryStream:
attrs = ""
if dict:
if value in dict or default is None:
- attrs += ' name="%s"' % dict[value]
+ attrs += ' name="%s"' % dict.get(value, "INVALID")
else:
attrs += ' name="%s"' % default
if hexdump and type(value) != float:
More information about the Libreoffice-commits
mailing list