summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarkus Mohrhard <markus.mohrhard@googlemail.com>2013-12-13 21:06:04 +0100
committerMarkus Mohrhard <markus.mohrhard@googlemail.com>2013-12-13 21:13:51 +0100
commitece94ab98fd8564a5419ea370c0d1f0e6afe188a (patch)
tree2c04f2c25ab4f3175a47823e8633bfcc97e9fa47
parent6483f39e8959050ca4d5df42c27695ae98efa8c9 (diff)
handle invalid xml files in orcus, fdo#63844
Change-Id: I82fff6ab89acece0e46c92bfca2c7faf967639b8
-rw-r--r--external/liborcus/UnpackedTarball_liborcus.mk3
-rw-r--r--external/liborcus/liborcus-handle-invalid-xml.patch.112
2 files changed, 15 insertions, 0 deletions
diff --git a/external/liborcus/UnpackedTarball_liborcus.mk b/external/liborcus/UnpackedTarball_liborcus.mk
index 9e2df47937c6..930543c9b664 100644
--- a/external/liborcus/UnpackedTarball_liborcus.mk
+++ b/external/liborcus/UnpackedTarball_liborcus.mk
@@ -21,6 +21,9 @@ liborcus_patches += liborcus_0.1.0-configure.patch
# don't use dllimport
liborcus_patches += liborcus_0.1.0-dllimport.patch
+# fdo#63844
+liborcus_patches += liborcus-handle-invalid-xml.patch.1
+
ifeq ($(OS),MACOSX)
# no "tac" command on OS X, but "tail -r"
liborcus_patches += liborcus_0.1.0-tac.patch
diff --git a/external/liborcus/liborcus-handle-invalid-xml.patch.1 b/external/liborcus/liborcus-handle-invalid-xml.patch.1
new file mode 100644
index 000000000000..4cb091d3e61b
--- /dev/null
+++ b/external/liborcus/liborcus-handle-invalid-xml.patch.1
@@ -0,0 +1,12 @@
+diff -ur liborcus.org/include/orcus/sax_parser.hpp liborcus/include/orcus/sax_parser.hpp
+--- liborcus.org/include/orcus/sax_parser.hpp 2013-12-13 20:51:55.126503773 +0100
++++ liborcus/include/orcus/sax_parser.hpp 2013-12-13 20:57:39.076174743 +0100
+@@ -278,6 +278,8 @@
+ special_tag();
+ break;
+ default:
++ if (!is_alpha(c))
++ throw malformed_xml_error("expect an alphabet.");
+ element_open(pos);
+ }
+ }