From 8388aecc1db6045b03634b284fb33cacc52f6e20 Mon Sep 17 00:00:00 2001 From: Rex Dieter Date: Sun, 18 Apr 2010 16:51:23 +0000 Subject: [PATCH] - pinentry-gtk -g segfaults on focus change (#520236) --- ...-2-SIGSEGV-when-unfocusing-with-g-ar.patch | 32 +++++++++++++++++++ pinentry.spec | 11 ++++++- 2 files changed, 42 insertions(+), 1 deletion(-) create mode 100644 0001-Fix-pinentry-gtk-2-SIGSEGV-when-unfocusing-with-g-ar.patch diff --git a/0001-Fix-pinentry-gtk-2-SIGSEGV-when-unfocusing-with-g-ar.patch b/0001-Fix-pinentry-gtk-2-SIGSEGV-when-unfocusing-with-g-ar.patch new file mode 100644 index 0000000..aa3acf0 --- /dev/null +++ b/0001-Fix-pinentry-gtk-2-SIGSEGV-when-unfocusing-with-g-ar.patch @@ -0,0 +1,32 @@ +From 977d49018cebcc37d0b667713ad422f80ba9c8d2 Mon Sep 17 00:00:00 2001 +From: Stanislav Ochotnicky +Date: Fri, 16 Apr 2010 16:17:04 +0200 +Subject: [PATCH] Fix pinentry-gtk-2 SIGSEGV when unfocusing with -g argument + +gdk_window_set_transient_for cannot be used with parent = NULL to +unset transient hint (unlike gtk_ version which can). Replacement +code is taken from gtk_window_transient_parent_unrealized + +Applied cleanly at least over 0.8.0 and 0.7.6 + +More info see: https://bugzilla.redhat.com/show_bug.cgi?id=520236 +--- + gtk+-2/pinentry-gtk-2.c | 3 ++- + 1 files changed, 2 insertions(+), 1 deletions(-) + +diff --git a/gtk+-2/pinentry-gtk-2.c b/gtk+-2/pinentry-gtk-2.c +index 7cd7616..fdd5822 100644 +--- a/gtk+-2/pinentry-gtk-2.c ++++ b/gtk+-2/pinentry-gtk-2.c +@@ -145,7 +145,8 @@ ungrab_keyboard (GtkWidget *win, GdkEvent *event, gpointer data) + { + gdk_keyboard_ungrab (gdk_event_get_time (event)); + /* Unmake window transient for the root window. */ +- gdk_window_set_transient_for (win->window, NULL); ++ gdk_property_delete (win->window, ++ gdk_atom_intern_static_string ("WM_TRANSIENT_FOR")); + } + + +-- +1.6.6.1 diff --git a/pinentry.spec b/pinentry.spec index 086081b..671bfe2 100644 --- a/pinentry.spec +++ b/pinentry.spec @@ -10,7 +10,7 @@ Name: pinentry Version: 0.7.6 -Release: 4%{?dist} +Release: 5%{?dist} Summary: Collection of simple PIN or passphrase entry dialogs Group: Applications/System @@ -23,6 +23,10 @@ BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n) # borrowed from opensuse Source10: pinentry-wrapper +## Upstreamable patches +# from gpa-devel list, archives seem 404'd atm +Patch50: 0001-Fix-pinentry-gtk-2-SIGSEGV-when-unfocusing-with-g-ar.patch + BuildRequires: gtk2-devel BuildRequires: libcap-devel BuildRequires: ncurses-devel @@ -83,6 +87,8 @@ Support for Qt4 is new, and a bit experimental. %prep %setup -q +%patch50 -p1 -b .rhbug_520236 + # hack around auto* madness, lack of proper support for moc %if %{?_enable_pinentry_qt4:1} pushd qt4 @@ -165,6 +171,9 @@ fi %changelog +* Sun Apr 18 2010 Rex Dieter - 0.7.6-5 +- pinentry-gtk -g segfaults on focus change (#520236) + * Wed Sep 13 2009 Rex Dieter - 0.7.6-4 - Errors installing with --excludedocs (#515925)