[remmina] Fix crash introduced by clipboard support (#827756)
Christoph Wickert
cwickert at fedoraproject.org
Sat Jun 2 22:40:18 UTC 2012
commit 75c2aae559dc061a383f2dd7d45c3029c993000a
Author: Christoph Wickert <cwickert at fedoraproject.org>
Date: Sun Jun 3 00:37:35 2012 +0200
Fix crash introduced by clipboard support (#827756)
...isconnect-signal-handler-after-disconnect.patch | 53 ++++++++++++++++++++
remmina.spec | 18 +++++--
2 files changed, 65 insertions(+), 6 deletions(-)
---
diff --git a/remmina-1.0.0-disconnect-signal-handler-after-disconnect.patch b/remmina-1.0.0-disconnect-signal-handler-after-disconnect.patch
new file mode 100644
index 0000000..dc4ae33
--- /dev/null
+++ b/remmina-1.0.0-disconnect-signal-handler-after-disconnect.patch
@@ -0,0 +1,53 @@
+From c1ef3a162622942d7c556c5a4352e626c7bcb28f Mon Sep 17 00:00:00 2001
+From: Jean-Louis Dupond <jean-louis at dupond.be>
+Date: Tue, 8 May 2012 14:44:16 +0200
+Subject: [PATCH] Disconnect signal handler after disconnect
+
+---
+ remmina-plugins/rdp/rdp_event.c | 10 ++++++++--
+ remmina-plugins/rdp/rdp_plugin.h | 1 +
+ 2 files changed, 9 insertions(+), 2 deletions(-)
+
+diff --git a/remmina-plugins/rdp/rdp_event.c b/remmina-plugins/rdp/rdp_event.c
+index a936fb1..2c050c6 100644
+--- a/remmina-plugins/rdp/rdp_event.c
++++ b/remmina-plugins/rdp/rdp_event.c
+@@ -523,8 +523,7 @@ void remmina_rdp_event_init(RemminaProtocolWidget* gp)
+ if (!remmina_plugin_service->file_get_int(remminafile, "disableclipboard", FALSE))
+ {
+ clipboard = gtk_widget_get_clipboard(rfi->drawing_area, GDK_SELECTION_CLIPBOARD);
+- g_signal_connect(clipboard, "owner-change",
+- G_CALLBACK(remmina_rdp_event_on_clipboard), gp);
++ rfi->clipboard_handler = g_signal_connect(clipboard, "owner-change", G_CALLBACK(remmina_rdp_event_on_clipboard), gp);
+ }
+
+ rfi->pressed_keys = g_array_new(FALSE, TRUE, sizeof (gint));
+@@ -575,6 +574,13 @@ void remmina_rdp_event_uninit(RemminaProtocolWidget* gp)
+
+ rfi = GET_DATA(gp);
+
++
++ /* unregister the clipboard monitor */
++ if (rfi->clipboard_handler)
++ {
++ g_signal_handler_disconnect(G_OBJECT(gtk_widget_get_clipboard(rfi->drawing_area, GDK_SELECTION_CLIPBOARD)), rfi->clipboard_handler);
++ rfi->clipboard_handler = NULL;
++ }
+ if (rfi->scale_handler)
+ {
+ g_source_remove(rfi->scale_handler);
+diff --git a/remmina-plugins/rdp/rdp_plugin.h b/remmina-plugins/rdp/rdp_plugin.h
+index ff66906..08b8891 100644
+--- a/remmina-plugins/rdp/rdp_plugin.h
++++ b/remmina-plugins/rdp/rdp_plugin.h
+@@ -134,6 +134,7 @@ struct rf_context
+ GAsyncQueue* event_queue;
+ gint event_pipe[2];
+
++ gint clipboard_handler;
+ gint clipboard_wait;
+ uint32 requested_format;
+ };
+--
+1.7.10
+
diff --git a/remmina.spec b/remmina.spec
index 2e6c8a8..b66609f 100644
--- a/remmina.spec
+++ b/remmina.spec
@@ -2,7 +2,7 @@
Name: remmina
Version: 1.0.0
-Release: 2%{?dist}
+Release: 3%{?dist}
Summary: Remote Desktop Client
Group: Applications/Internet
@@ -17,18 +17,20 @@ Patch0: remmina-1.0.0-fix-library-name.patch
# https://github.com/FreeRDP/Remmina/commit/13f20367
Patch1: remmina-1.0.0-linker-error.patch
-# The following 3 patches are needed to add clipboard support (#818155)
+# The following 4 patches are needed to add clipboard support (#818155)
# https://github.com/FreeRDP/Remmina/commit/3ebdd6e7
Patch2: remmina-1.0.0-add-clipboard-support.patch
# https://github.com/FreeRDP/Remmina/commit/97c2af8c
Patch3: remmina-1.0.0-clipboard-bugfix.patch
# https://github.com/FreeRDP/Remmina/commit/84327f81
Patch4: remmina-1.0.0-some-more-clipboard-fixes.patch
+# https://github.com/FreeRDP/Remmina/commit/c1ef3a16
+Patch5: remmina-1.0.0-disconnect-signal-handler-after-disconnect.patch
# https://github.com/FreeRDP/Remmina/commit/6ee20289
-Patch5: remmina-1.0.0-fix-crashes-in-some-cases.patch
+Patch10: remmina-1.0.0-fix-crashes-in-some-cases.patch
# https://github.com/FreeRDP/Remmina/commit/b2277827
-Patch6: remmina-1.0.0-fix-memory-leak.patch
+Patch11: remmina-1.0.0-fix-memory-leak.patch
BuildRoot: %{_tmppath}/%{name}-%{version}-%{release}-root-%(%{__id_u} -n)
@@ -196,9 +198,10 @@ client.
%patch2 -p1 -b .add-clipboard-support
%patch3 -p1 -b .clipboard-bugfix
%patch4 -p1 -b .some-more-clipboard-fixes
+%patch5 -p1 -b .disconnect-signal-handler
-%patch5 -p1 -b .fix-crashes-in-some-cases
-%patch6 -p1 -b .fix-memory-leak
+%patch10 -p1 -b .fix-crashes-in-some-cases
+%patch11 -p1 -b .fix-memory-leak
# Don't hardcode libdir
sed -i "s,/lib/remmina/plugins,/%{_lib}/remmina/plugins,g" CMakeLists.txt
@@ -330,6 +333,9 @@ gtk-update-icon-cache %{_datadir}/icons/hicolor &>/dev/null || :
%changelog
+* Sun Jun 03 2012 Christoph Wickert <cwickert at fedoraproject.org> - 1.0.0-3
+- Fix crash introduced by clipboard support (#827756)
+
* Fri Jun 01 2012 Christoph Wickert <cwickert at fedoraproject.org> - 1.0.0-2
- Add clipboard support (#818155)
- Fix a memory leak and a crash
More information about the scm-commits
mailing list