[gnumeric] improve clean-up on malformed odf file



commit 1581cf92afacf3314b132912d21d07db36216c1f
Author: Andreas J Guelzow <aguelzow pyrshep ca>
Date:   Mon Jun 17 10:04:11 2013 -0600

    improve clean-up on malformed odf file
    
    2013-06-17  Andreas J. Guelzow <aguelzow pyrshep ca>
    
        * openoffice-read.c (openoffice_file_open): ensure we have no
        sheet-object left in partial construction

 plugins/openoffice/ChangeLog         |    5 +++++
 plugins/openoffice/openoffice-read.c |    3 +++
 2 files changed, 8 insertions(+), 0 deletions(-)
---
diff --git a/plugins/openoffice/ChangeLog b/plugins/openoffice/ChangeLog
index 37e9501..563696b 100644
--- a/plugins/openoffice/ChangeLog
+++ b/plugins/openoffice/ChangeLog
@@ -1,3 +1,8 @@
+2013-06-17  Andreas J. Guelzow <aguelzow pyrshep ca>
+
+       * openoffice-read.c (openoffice_file_open): ensure we have no
+       sheet-object left in partial construction
+
 2013-06-16  Andreas J. Guelzow <aguelzow pyrshep ca>
 
        * openoffice-read.c (oo_parse_border): check for NULL color
diff --git a/plugins/openoffice/openoffice-read.c b/plugins/openoffice/openoffice-read.c
index 9f142bf..fec3b23 100644
--- a/plugins/openoffice/openoffice-read.c
+++ b/plugins/openoffice/openoffice-read.c
@@ -11942,6 +11942,7 @@ openoffice_file_open (G_GNUC_UNUSED GOFileOpener const *fo, GOIOContext *io_cont
        state.validations = g_hash_table_new_full (g_str_hash, g_str_equal,
                (GDestroyNotify) g_free,
                (GDestroyNotify) odf_validation_free);
+       state.chart.so = NULL;
        state.chart.saved_graph_styles = NULL;
        state.chart.saved_hatches = NULL;
        state.chart.saved_dash_styles = NULL;
@@ -12176,6 +12177,8 @@ openoffice_file_open (G_GNUC_UNUSED GOFileOpener const *fo, GOIOContext *io_cont
        g_free (state.chart.cs_modifiers);
        g_free (state.chart.cs_viewbox);
        g_free (state.chart.cs_type);
+       if (state.chart.so)
+               g_object_unref (state.chart.so);
        if (state.chart_list)
                g_slist_free_full (state.chart_list, odf_destroy_object_offset);
        if (state.chart.cs_variables)


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