Blob Blame History Raw
From d6e5ef02ebdc059e2412d429c23a39f6171a4851 Mon Sep 17 00:00:00 2001
From: Matthias Clasen <mclasen@redhat.com>
Date: Wed, 8 Jan 2014 18:51:53 -0500
Subject: [PATCH 1/2] Be more careful with XIDs

When an invalid XID is specified, we end up calling
gdk_window_set_transient_for with a NULL window. This leads
to a crash, so don't do it, and instead silently ignore
the invalid XID.

https://bugzilla.gnome.org/show_bug.cgi?id=721278
---
 src/disks/gduformatvolumedialog.c | 3 ++-
 1 file changed, 2 insertions(+), 1 deletion(-)

diff --git a/src/disks/gduformatvolumedialog.c b/src/disks/gduformatvolumedialog.c
index c737cb0..f741ade 100644
--- a/src/disks/gduformatvolumedialog.c
+++ b/src/disks/gduformatvolumedialog.c
@@ -181,7 +181,8 @@ gdu_format_volume_dialog_show_internal (UDisksClient *client,
       GdkWindow *foreign_window = gdk_x11_window_foreign_new_for_display (gdk_display_get_default (), parent_xid);
       if (!gtk_widget_get_realized (data->dialog))
           gtk_widget_realize (data->dialog);
-      gdk_window_set_transient_for (gtk_widget_get_window (data->dialog), foreign_window);
+      if (foreign_window != NULL)
+        gdk_window_set_transient_for (gtk_widget_get_window (data->dialog), foreign_window);
     }
 
   gtk_dialog_set_default_response (GTK_DIALOG (data->dialog), GTK_RESPONSE_OK);
-- 
1.8.4.2