summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMarkus Mohrhard <markus.mohrhard@googlemail.com>2013-12-13 21:06:04 +0100
committerKohei Yoshida <kohei.yoshida@collabora.com>2013-12-13 17:19:09 -0500
commit86815707be317b8b874b0c595bb586b15f7196d4 (patch)
tree0e4697d317ab38451d4d760292356f174b0d2fa5
parentbe63a5d34d4659b2fb8341a6e662b926e9d7f852 (diff)
handle invalid xml files in orcus, fdo#63844
Change-Id: I82fff6ab89acece0e46c92bfca2c7faf967639b8 Signed-off-by: Kohei Yoshida <kohei.yoshida@collabora.com>
-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);
+ }
+ }