diff options
author | msweet <msweet@a1ca3aef-8c08-0410-bb20-df032aa958be> | 2015-01-30 16:15:53 +0000 |
---|---|---|
committer | msweet <msweet@a1ca3aef-8c08-0410-bb20-df032aa958be> | 2015-01-30 16:15:53 +0000 |
commit | 3644808db76f28b30ebc46fbc2436f497a60a878 (patch) | |
tree | c9376c0f7722362a778728f609536a96fbf0b3c5 /scheduler/dirsvc.c | |
parent | 726429cbd4fd090231eda85713eb36e513c647c8 (diff) | |
download | cups-3644808db76f28b30ebc46fbc2436f497a60a878.tar.gz |
The scheduler could crash during shutdown if Avahi was shutdown first
(STR #4550)
git-svn-id: svn+ssh://src.apple.com/svn/cups/cups.org/trunk@12458 a1ca3aef-8c08-0410-bb20-df032aa958be
Diffstat (limited to 'scheduler/dirsvc.c')
-rw-r--r-- | scheduler/dirsvc.c | 19 |
1 files changed, 13 insertions, 6 deletions
diff --git a/scheduler/dirsvc.c b/scheduler/dirsvc.c index 4e417b0b2..71a002cd1 100644 --- a/scheduler/dirsvc.c +++ b/scheduler/dirsvc.c @@ -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); |