]> git.ipfire.org Git - thirdparty/cups.git/commitdiff
The scheduler could crash during shutdown if Avahi was shutdown first
authormsweet <msweet@a1ca3aef-8c08-0410-bb20-df032aa958be>
Fri, 30 Jan 2015 16:15:53 +0000 (16:15 +0000)
committermsweet <msweet@a1ca3aef-8c08-0410-bb20-df032aa958be>
Fri, 30 Jan 2015 16:15:53 +0000 (16:15 +0000)
(STR #4550)

git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12458 a1ca3aef-8c08-0410-bb20-df032aa958be

CHANGES-2.0.txt
scheduler/dirsvc.c

index c61db95dbebf9b2f37ca88f47d11e4a999683c81..3d45d66763d40ec89a3965d8b0fc0eec82cdffdc 100644 (file)
@@ -29,6 +29,8 @@ CHANGES IN CUPS V2.0.2
        - cupsGetPPD* sent bad requests (STR #4567)
        - ippserver used the wrong temporary directory on Windows (STR #4547)
        - ippserver did not handle Bonjour registrations properly (STR #4548)
+       - The scheduler could crash during shutdown if Avahi was shutdown
+         first (STR #4550)
 
 
 CHANGES IN CUPS V2.0.1
index 4e417b0b29f5bf17253d44ba457ca25bdefbd0a7..71a002cd123a337cee8462dfc7b0b704818bf9c1 100644 (file)
@@ -3,7 +3,7 @@
  *
  * Directory services routines for the CUPS scheduler.
  *
- * Copyright 2007-2014 by Apple Inc.
+ * Copyright 2007-2015 by Apple Inc.
  * Copyright 1997-2007 by Easy Software Products, all rights reserved.
  *
  * These coded instructions, statements, and computer programs are the
@@ -1296,13 +1296,20 @@ dnssdStop(void)
   DNSSDMaster = NULL;
 
 #  else /* HAVE_AVAHI */
-  avahi_threaded_poll_stop(DNSSDMaster);
+  if (DNSSDMaster)
+    avahi_threaded_poll_stop(DNSSDMaster);
 
-  avahi_client_free(DNSSDClient);
-  DNSSDClient = NULL;
+  if (DNSSDClient)
+  {
+    avahi_client_free(DNSSDClient);
+    DNSSDClient = NULL;
+  }
 
-  avahi_threaded_poll_free(DNSSDMaster);
-  DNSSDMaster = NULL;
+  if (DNSSDMaster)
+  {
+    avahi_threaded_poll_free(DNSSDMaster);
+    DNSSDMaster = NULL;
+  }
 #  endif /* HAVE_DNSSD */
 
   cupsArrayDelete(DNSSDPrinters);