$OpenBSD: patch-src_xitk_xine-toolkit_xitk_c,v 1.3 2013/02/05 12:31:03 brad Exp $

Fix segfaults in signal handler.

--- src/xitk/xine-toolkit/xitk.c.orig	Tue Feb  5 07:11:29 2013
+++ src/xitk/xine-toolkit/xitk.c	Tue Feb  5 07:13:45 2013
@@ -337,14 +337,16 @@ int xitk_uninstall_x_error_handler(void) {
 static void xitk_signal_handler(int sig) {
   pid_t cur_pid = getppid();
 
-  /* First, call registered handler */
-  if(cur_pid == xitk_pid) {
-    if(gXitk->sig_callback)
-      gXitk->sig_callback(sig, gXitk->sig_data);
-  }
+  if (gXitk) {
+    /* First, call registered handler */
+    if(cur_pid == xitk_pid) {
+      if(gXitk->sig_callback)
+        gXitk->sig_callback(sig, gXitk->sig_data);
+    }
   
-  gXitk->running = 0;
-  
+    gXitk->running = 0;
+  }
+
   switch (sig) {
     
   case SIGINT:
@@ -352,11 +354,13 @@ static void xitk_signal_handler(int sig) {
   case SIGQUIT:
     if(cur_pid == xitk_pid) {
       
-      xitk_list_free(gXitk->list);
-      xitk_list_free(gXitk->gfx);
-      xitk_config_deinit(gXitk->config);
+      if (gXitk) {
+        xitk_list_free(gXitk->list);
+        xitk_list_free(gXitk->gfx);
+        xitk_config_deinit(gXitk->config);
       
-      XITK_FREE(gXitk);
+        XITK_FREE(gXitk);
+      }
       exit(1);
     }
     break;
