/pidgin/main: c1da9082287f: Fix a crash in case of Ctrl+C while ...

Tomasz Wasilczyk tomkiewicz at cpw.pidgin.im
Wed Aug 14 05:22:57 EDT 2013


Changeset: c1da9082287f90d6129a0a6fcf42863b87dc4d0e
Author:	 Tomasz Wasilczyk <tomkiewicz at cpw.pidgin.im>
Date:	 2013-08-14 11:22 +0200
Branch:	 default
URL: https://hg.pidgin.im/pidgin/main/rev/c1da9082287f

Description:

Fix a crash in case of Ctrl+C while booting (it's fork related)

diffstat:

 pidgin/gtkmain.c  |  12 ++++++++++--
 pidgin/gtksound.c |   1 +
 2 files changed, 11 insertions(+), 2 deletions(-)

diffs (40 lines):

diff --git a/pidgin/gtkmain.c b/pidgin/gtkmain.c
--- a/pidgin/gtkmain.c
+++ b/pidgin/gtkmain.c
@@ -88,6 +88,7 @@ static const int catch_sig_list[] = {
 	SIGINT,
 	SIGTERM,
 	SIGQUIT,
+	SIGCHLD,
 	-1
 };
 
@@ -182,8 +183,15 @@ mainloop_sighandler(GIOChannel *source, 
 		return FALSE;
 	}
 
-	purple_debug_warning("sighandler", "Caught signal %d\n", sig);
-	purple_core_quit();
+	switch (sig) {
+		case SIGCHLD:
+			/* Restore signal catching */
+			signal(SIGCHLD, sighandler);
+			break;
+		default:
+			purple_debug_warning("sighandler", "Caught signal %d\n", sig);
+			purple_core_quit();
+	}
 
 	return TRUE;
 }
diff --git a/pidgin/gtksound.c b/pidgin/gtksound.c
--- a/pidgin/gtksound.c
+++ b/pidgin/gtksound.c
@@ -319,6 +319,7 @@ pidgin_sound_init(void)
 
 #ifdef USE_GSTREAMER
 	purple_debug_info("sound", "Initializing sound output drivers.\n");
+	gst_registry_fork_set_enabled(FALSE);
 	if ((gst_init_failed = !gst_init_check(NULL, NULL, &error))) {
 		purple_notify_error(NULL, _("GStreamer Failure"),
 					_("GStreamer failed to initialize."),



More information about the Commits mailing list