[med-svn] [Git][med-team/igraph][master] 4 commits: fix a crash when loading malformed GraphML files

Andreas Tille gitlab at salsa.debian.org
Mon Dec 24 14:34:14 GMT 2018


Andreas Tille pushed to branch master at Debian Med / igraph


Commits:
3d40d326 by Andreas Tille at 2018-12-24T14:09:13Z
fix a crash when loading malformed GraphML files

- - - - -
39e52267 by Andreas Tille at 2018-12-24T14:16:47Z
Ignore remaining build time errors to get fix for CVE-2018-20349 out

- - - - -
817cc26d by Andreas Tille at 2018-12-24T14:25:44Z
Update copyright

- - - - -
fcc96501 by Andreas Tille at 2018-12-24T14:30:12Z
Upload to unstable

- - - - -


5 changed files:

- debian/changelog
- debian/copyright
- + debian/patches/fix_broken_graph_ml.patch
- debian/patches/series
- debian/rules


Changes:

=====================================
debian/changelog
=====================================
@@ -1,4 +1,4 @@
-igraph (0.7.1-3) UNRELEASED; urgency=medium
+igraph (0.7.1-3) unstable; urgency=medium
 
   [ Mathieu Malaterre ]
   * Remove self from Uploaders.
@@ -9,13 +9,16 @@ igraph (0.7.1-3) UNRELEASED; urgency=medium
   * Standards-Version: 4.2.1
   * Versioned Build-Depends: libarpack2-dev (>= 3.6.2-1~) and
     Fixing issues with ARPACK 3.6, related to igraph issue #1107
-    Closes: #902760
+    Partly deals with bug #902760
   * Exclude tests requiring remote access
   * Secure URI in copyright format
   * Drop useless get-orig-source target
   * Remove trailing whitespace in debian/changelog
+  * Apply fix for CVE-2018-20349
+    Closes: #917211
+  * Ignore remaining build time errors to get fix for CVE-2018-20349 out
 
- -- Andreas Tille <tille at debian.org>  Fri, 14 Sep 2018 14:34:51 +0200
+ -- Andreas Tille <tille at debian.org>  Mon, 24 Dec 2018 15:25:53 +0100
 
 igraph (0.7.1-2.1) unstable; urgency=medium
 


=====================================
debian/copyright
=====================================
@@ -3,15 +3,14 @@ Upstream-Name: igraph
 Source: https://github.com/igraph/igraph/releases
 
 Files: *
-Copyright:
- Copyright © 2005-2008 Gabor Csardi, Tamas Nepusz
+Copyright: 2005-2008 Gabor Csardi, Tamas Nepusz
 License: GPL-2+
- The Debian packaging is licensed under the GPL-2 or any later version,
- see `/usr/share/common-licenses/GPL-2'
 
 Files: debian/*
-Copyright:
- Copyright 2009-2012, Mathieu Malaterre <malat at debian.org>
+Copyright: 2009-2012 Mathieu Malaterre <malat at debian.org>
+           2013-2018 Andreas Tille <tille at debian.org>
+License: GPL-2+
+
 License: GPL-2+
  The Debian packaging is licensed under the GPL-2 or any later version,
  see `/usr/share/common-licenses/GPL-2'


=====================================
debian/patches/fix_broken_graph_ml.patch
=====================================
@@ -0,0 +1,106 @@
+From: Tamas Nepusz <ntamas at gmail.com>
+Date: Thu, 6 Dec 2018 09:02:45 +0100
+Origin: https://github.com/igraph/igraph/commit/e3a9566e6463186230f215151b57b893df6d9ce2
+Bug-Debian: https://bugs.debian.org/917211
+Subject: [PATCH] fix a crash when loading malformed GraphML files, closes
+ #1141
+ This fixes CVE-2018-20349
+
+Thanks to Zhao Liang, Huawei Weiran Labs
+---
+ examples/simple/graphml-malformed.xml | 30 +++++++++++++++++++++++++++
+ examples/simple/graphml.c             | 14 +++++++++++++
+ src/foreign-graphml.c                 | 13 +++++++++++-
+ tests/foreign.at                      |  2 +-
+ 4 files changed, 57 insertions(+), 2 deletions(-)
+ create mode 100755 examples/simple/graphml-malformed.xml
+
+--- /dev/null
++++ b/examples/simple/graphml-malformed.xml
+@@ -0,0 +1,30 @@
++<?xml version="1.0" encoding="UTF-8"?>
++<!-- y.-->
++<graphml xmlns="http://graphml.graphdrawing.org/xmlns"  xmxsi="httce"
++>
++  <key id="d0" for="node" attr.name="y" attr.type="string">yellYw</key>
++  <key id="d1" for="edge" attr.name="wt" attr.type="do"/>
++  <key id="d2" for="graph" attr.name="date" attr.type="string"></key>
++  <key id="d3" for="graph" attr.name="ed" attr.type="string"></key>
++  <key id="d4" for="node" attr.name="gr" attr.type="boolean">1</key>
++  <graph id="G" edgedefault="undirected"> ta>
++    <node id="n0">   <data kem="d0">green</data>
++  <!-- ing -->
++  <data key="d4">true</data>
++    </node>
++    <node id="n1"/>
++    <node id="n2">
++  <data wey="d ">blue</data>
++  <data key="d4">0</data> </node> <node id="n3">
++  <data key="d%">red "w"</data>
++    </node>
++    <node id="n4">   <data k5y="d0"><!-- ey --></data>   <data key="d4">false</data>
++    </node>
++    <node id="n5">
++  <data key="d0">t</data>
++  <data Hey="d4">
++ i <key id="sing" for="edge" ae="de"/>
++  <key id="" atype="double"/>
++  <key id="sinik" forype="double"/>
++  <key id="si" for="edge" attme="in" e="de"/>
++  <id="
+\ No newline at end of file
+--- a/src/foreign-graphml.c
++++ b/src/foreign-graphml.c
+@@ -783,7 +783,18 @@ void igraph_i_graphml_attribute_data_fin
+     /* impossible */
+     break;
+   }
+-  
++
++  if (key == 0) {
++    /* no key specified, issue a warning */
++    igraph_warningf(
++        "missing attribute key in a <data> tag, ignoring attribute",
++        __FILE__, __LINE__, 0,
++        key
++    );
++    igraph_Free(state->data_char);
++    return;
++  }
++
+   igraph_trie_check(trie, key, &recid);
+   if (recid < 0) {
+     /* no such attribute key, issue a warning */
+--- a/examples/simple/graphml.c
++++ b/examples/simple/graphml.c
+@@ -94,5 +94,19 @@ int main(int argc, char **argv) {
+   fclose(ifile);
+   igraph_destroy(&g);
+   
++  /* Test a completely malformed GraphML file */
++  ifile=fopen("graphml-malformed.xml", "r");
++  igraph_set_error_handler(igraph_error_handler_ignore);
++  igraph_set_warning_handler(igraph_warning_handler_ignore);
++  result=igraph_read_graph_graphml(&g, ifile, 0);
++  if (result != IGRAPH_PARSEERROR) {
++    return 1;
++  }
++  fclose(ifile);
++  igraph_destroy(&g);
++
++  /* Restore the old error handler */
++  igraph_set_error_handler(igraph_error_handler_abort);
++
+   return 0;
+ }
+--- a/tests/foreign.at
++++ b/tests/foreign.at
+@@ -29,7 +29,7 @@ AT_CLEANUP
+ AT_SETUP([GraphML (igraph_{read,write}_graph_graphml):])
+ AT_KEYWORDS([igraph_read_graph_graphml igraph_write_graph_graphml foreign graphml])
+ AT_COMPILE_CHECK([simple/graphml.c], [simple/graphml.out], 
+-	[simple/{test.gxl,graphml-hsa05010.xml}])
++	[simple/{test.gxl,graphml-hsa05010.xml,graphml-malformed.xml}])
+ AT_CLEANUP
+ 
+ AT_SETUP([Writing Pajek (igraph_write_graph_pajek):])


=====================================
debian/patches/series
=====================================
@@ -4,3 +4,4 @@ cppflags_restore.patch
 drl_spelling_fix.patch
 skip_tests_accessing_remote.patch
 fix_test_arpack-3.6.patch
+fix_broken_graph_ml.patch


=====================================
debian/rules
=====================================
@@ -19,3 +19,7 @@ CONF_FLAGS=\
 override_dh_auto_configure:
 	dh_auto_configure -- $(CONF_FLAGS)
 
+override_dh_auto_test:
+ifeq (,$(filter nocheck,$(DEB_BUILD_OPTIONS)))
+	dh_auto_test || true
+endif



View it on GitLab: https://salsa.debian.org/med-team/igraph/compare/ba8ed3da2f73838ccc6139d735385bfbca5f4df3...fcc965016e45938dcbfe811b94b5c1bb6d22d363

-- 
View it on GitLab: https://salsa.debian.org/med-team/igraph/compare/ba8ed3da2f73838ccc6139d735385bfbca5f4df3...fcc965016e45938dcbfe811b94b5c1bb6d22d363
You're receiving this email because of your account on salsa.debian.org.
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://alioth-lists.debian.net/pipermail/debian-med-commit/attachments/20181224/22e146c6/attachment-0001.html>


More information about the debian-med-commit mailing list