[dia] svg: transform parsing robustness



commit 3ddf113c8155dfe5facd44092a5e441055636f7b
Author: Hans Breuer <hans breuer org>
Date:   Sun Jul 28 15:09:24 2013 +0200

    svg: transform parsing robustness
    
    Only transformations separated by comma were supported. Also an invalid
    string could have crashed Dia. Now dia_svg_parse_transform() uses
    g_regex_split_simple() to split on whitespace or comma and silently
    ignores broken transform definitions.

 lib/dia_svg.c |    9 +++++++--
 1 files changed, 7 insertions(+), 2 deletions(-)
---
diff --git a/lib/dia_svg.c b/lib/dia_svg.c
index 05a2614..3a587d3 100644
--- a/lib/dia_svg.c
+++ b/lib/dia_svg.c
@@ -1131,11 +1131,16 @@ MORETOPARSE:
 DiaMatrix *
 dia_svg_parse_transform(const gchar *trans, real scale)
 {
-  DiaMatrix *m = g_new0 (DiaMatrix, 1);
+  DiaMatrix *m;
   gchar *p = strchr (trans, '(');
-  gchar **list = g_strsplit (p+1, ",", -1);
+  gchar **list;
   int i = 0;
 
+  if (!p)
+    return NULL; /* silently ignore broken format */
+
+  m = g_new0 (DiaMatrix, 1);
+  list = g_regex_split_simple ("[\\s,]+", p+1, 0, 0);
   if (strncmp (trans, "matrix", 6) == 0) {
     if (list[i])
       m->xx = g_ascii_strtod (list[i], NULL), ++i;


[Date Prev][Date Next]   [Thread Prev][Thread Next]   [Thread Index] [Date Index] [Author Index]