[gnumeric] xml: handle fuzzed file.



commit 94d3acb5a572d20bbff0502e2d8c7fc32f2b9f66
Author: Morten Welinder <terra gnome org>
Date:   Tue Jul 30 21:44:41 2013 -0400

    xml: handle fuzzed file.

 ChangeLog          |    9 +++++++--
 src/xml-sax-read.c |   15 ++++++++++++---
 2 files changed, 19 insertions(+), 5 deletions(-)
---
diff --git a/ChangeLog b/ChangeLog
index 2176de4..5559592 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,3 +1,8 @@
+2013-07-30  Morten Welinder  <terra gnome org>
+
+       * src/xml-sax-read.c (xml_sax_style_border): Make sure we have a
+       colour.  Fixes rest of #705031.
+
 2013-07-29  Andreas J. Guelzow <aguelzow pyrshep ca>
 
        * src/func.c (gnm_func_lookup_prefix): do not include placeholders
@@ -8,8 +13,8 @@
 
 2013-07-23  Jean Brefort  <jean brefort normalesup org>
 
-       * src/graph.c (gnm_go_data_vector_load_values): really load all values for
-       multiple ranges.
+       * src/graph.c (gnm_go_data_vector_load_values): really load all
+       values for multiple ranges.
 
 2013-07-19  Morten Welinder  <terra gnome org>
 
diff --git a/src/xml-sax-read.c b/src/xml-sax-read.c
index 673dca2..e1ada14 100644
--- a/src/xml-sax-read.c
+++ b/src/xml-sax-read.c
@@ -1836,9 +1836,18 @@ xml_sax_style_border (GsfXMLIn *xin, xmlChar const **attrs)
                GnmStyleElement const type = xin->node->user_data.v_int;
                GnmStyleBorderLocation const loc =
                        GNM_STYLE_BORDER_TOP + (int)(type - MSTYLE_BORDER_TOP);
-               GnmBorder *border =
-                       gnm_style_border_fetch ((GnmStyleBorderType)pattern, colour,
-                                               gnm_style_border_get_orientation (loc));
+               GnmBorder *border;
+
+               /*
+                * Make sure we have a colour to prevent trouble further
+                * down the line.
+                */
+               if (!colour)
+                       colour = gnm_color_new_go (GO_COLOR_BLACK);
+
+               border = gnm_style_border_fetch
+                       ((GnmStyleBorderType)pattern, colour,
+                        gnm_style_border_get_orientation (loc));
                gnm_style_set_border (state->style, type, border);
        }
 }


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