diff options
author | Matthias Clasen <mclasen@redhat.com> | 2018-04-20 16:56:28 -0400 |
---|---|---|
committer | Matthias Clasen <mclasen@redhat.com> | 2018-04-20 16:58:36 -0400 |
commit | 6f4a77bb3c8a49413af01b532c07085db1960010 (patch) | |
tree | 19772d741a9e9c958627825bc6c01fa3a11325ca | |
parent | 06a1477f80bdb637e4c43460ccafc543cc0f304a (diff) | |
download | gtk+-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.c | 7 |
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); |