From: Matthias Clasen Date: Fri, 20 Apr 2018 20:56:28 +0000 (-0400) Subject: printing: Be more careful when deserializing X-Git-Tag: archive/raspbian/4.4.1+ds1-2+rpi1^2~18^2~22^2~452^2 X-Git-Url: https://dgit.raspbian.org/?a=commitdiff_plain;h=6f4a77bb3c8a49413af01b532c07085db1960010;p=gtk4.git printing: Be more careful when deserializing 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. --- 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);