summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMatthias Clasen <mclasen@redhat.com>2018-04-20 16:56:28 -0400
committerMatthias Clasen <mclasen@redhat.com>2018-04-20 16:58:36 -0400
commit6f4a77bb3c8a49413af01b532c07085db1960010 (patch)
tree19772d741a9e9c958627825bc6c01fa3a11325ca
parent06a1477f80bdb637e4c43460ccafc543cc0f304a (diff)
downloadgtk+-print-deserialize.tar.gz
printing: Be more careful when deserializingprint-deserialize
The GVariant we are getting here might not be coming from GTK+, but rather from some other source. Best to be forgiving and deal with missing data without crashing. This was causing the GTK+ portal backends to crash on print requests from Qt.
-rw-r--r--gtk/gtkpagesetup.c7
1 files changed, 5 insertions, 2 deletions
diff --git a/gtk/gtkpagesetup.c b/gtk/gtkpagesetup.c
index f1856c7dd2..0769b8aeac 100644
--- a/gtk/gtkpagesetup.c
+++ b/gtk/gtkpagesetup.c
@@ -848,8 +848,11 @@ gtk_page_setup_new_from_gvariant (GVariant *variant)
setup = gtk_page_setup_new ();
paper_size = gtk_paper_size_new_from_gvariant (variant);
- gtk_page_setup_set_paper_size (setup, paper_size);
- gtk_paper_size_free (paper_size);
+ if (paper_size)
+ {
+ gtk_page_setup_set_paper_size (setup, paper_size);
+ gtk_paper_size_free (paper_size);
+ }
if (g_variant_lookup (variant, "MarginTop", "d", &margin))
gtk_page_setup_set_top_margin (setup, margin, GTK_UNIT_MM);