[dia] svg: transform parsing robustness
- From: Hans Breuer <hans src gnome org>
- To: commits-list gnome org
- Cc:
- Subject: [dia] svg: transform parsing robustness
- Date: Sun, 4 Aug 2013 12:43:51 +0000 (UTC)
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]