From e81250edbb1751c3626b01645872f74948081a19 Mon Sep 17 00:00:00 2001 From: su_v Date: Sat, 13 Sep 2014 19:48:17 +0200 Subject: Fix GTK3 build (bzr r13555) --- src/ui/dialog/inkscape-preferences.cpp | 1 + 1 file changed, 1 insertion(+) (limited to 'src') diff --git a/src/ui/dialog/inkscape-preferences.cpp b/src/ui/dialog/inkscape-preferences.cpp index e04748759..7d43adc0f 100644 --- a/src/ui/dialog/inkscape-preferences.cpp +++ b/src/ui/dialog/inkscape-preferences.cpp @@ -19,6 +19,7 @@ #include "inkscape-preferences.h" #include +#include #include #include #include -- cgit v1.2.3 From 70f0a1b307456191c5f2ce103d3edbf4ca23d514 Mon Sep 17 00:00:00 2001 From: Bryce Harrington Date: Sun, 14 Sep 2014 16:03:29 -0700 Subject: Always check result of sp_repr_read_mem for NULL In cases where undefined or invalid XML is passed to sp_repr_read_mem(), it will indicate failure by returning NULL. All callers must check for this and handle the error condition accordingly. Fixes: lp: #1170248 Fixed bugs: - https://launchpad.net/bugs/1170248 (bzr r13556) --- src/extension/prefdialog.cpp | 4 ++++ src/extension/system.cpp | 3 ++- src/inkscape.cpp | 2 +- 3 files changed, 7 insertions(+), 2 deletions(-) (limited to 'src') diff --git a/src/extension/prefdialog.cpp b/src/extension/prefdialog.cpp index d1f83701f..3a384257c 100644 --- a/src/extension/prefdialog.cpp +++ b/src/extension/prefdialog.cpp @@ -90,6 +90,10 @@ PrefDialog::PrefDialog (Glib::ustring name, gchar const * help, Gtk::Widget * co if (_effect != NULL && !_effect->no_live_preview) { if (_param_preview == NULL) { XML::Document * doc = sp_repr_read_mem(live_param_xml, strlen(live_param_xml), NULL); + if (doc == NULL) { + std::cout << "Error encountered loading live parameter XML !!!" << std::endl; + return; + } _param_preview = Parameter::make(doc->root(), _effect); } diff --git a/src/extension/system.cpp b/src/extension/system.cpp index c244d9c16..45feb882f 100644 --- a/src/extension/system.cpp +++ b/src/extension/system.cpp @@ -556,7 +556,7 @@ build_from_file(gchar const *filename) } /** - * \return The module created + * \return The module created, or NULL if buffer is invalid * \brief This function creates a module from a buffer holding an * XML description. * \param buffer The buffer holding the XML description of the module. @@ -568,6 +568,7 @@ Extension * build_from_mem(gchar const *buffer, Implementation::Implementation *in_imp) { Inkscape::XML::Document *doc = sp_repr_read_mem(buffer, strlen(buffer), INKSCAPE_EXTENSION_URI); + g_return_val_if_fail(doc != NULL, NULL); Extension *ext = build_from_reprdoc(doc, in_imp); Inkscape::GC::release(doc); return ext; diff --git a/src/inkscape.cpp b/src/inkscape.cpp index 4b4c8c678..e312e15b9 100644 --- a/src/inkscape.cpp +++ b/src/inkscape.cpp @@ -945,7 +945,7 @@ bool inkscape_load_menus( Inkscape::Application * inkscape ) inkscape->menus = sp_repr_read_mem(menus_skeleton, MENUS_SKELETON_SIZE, NULL); } - return (inkscape->menus != 0); + return (inkscape->menus != NULL); } -- cgit v1.2.3