summaryrefslogtreecommitdiff
path: root/scheduler/dirsvc.c
diff options
context:
space:
mode:
authorMichael Sweet <michael.r.sweet@gmail.com>2017-08-28 10:04:29 -0400
committerMichael Sweet <michael.r.sweet@gmail.com>2017-08-28 10:04:29 -0400
commitb337f966e85ec2ae65769ee6bab12f78edcfafa5 (patch)
treed18f0502fff196830f9e8689418363cc10347c66 /scheduler/dirsvc.c
parente9b2d701dae26930a356408ada2c4f7eacc59100 (diff)
downloadcups-b337f966e85ec2ae65769ee6bab12f78edcfafa5.tar.gz
Fix an Avahi-related crash bug in the scheduler (Issue #5085, Issue #5086)
Add NULL pointer check to avoid Avahi assertion in production code.
Diffstat (limited to 'scheduler/dirsvc.c')
-rw-r--r--scheduler/dirsvc.c13
1 files changed, 8 insertions, 5 deletions
diff --git a/scheduler/dirsvc.c b/scheduler/dirsvc.c
index 6f6aa8bb4..2308e0538 100644
--- a/scheduler/dirsvc.c
+++ b/scheduler/dirsvc.c
@@ -699,13 +699,16 @@ dnssdDeregisterInstance(
DNSServiceRefDeallocate(*srv);
# else /* HAVE_AVAHI */
- if (!from_callback)
- avahi_threaded_poll_lock(DNSSDMaster);
+ if (*srv)
+ {
+ if (!from_callback)
+ avahi_threaded_poll_lock(DNSSDMaster);
- avahi_entry_group_free(*srv);
+ avahi_entry_group_free(*srv);
- if (!from_callback)
- avahi_threaded_poll_unlock(DNSSDMaster);
+ if (!from_callback)
+ avahi_threaded_poll_unlock(DNSSDMaster);
+ }
# endif /* HAVE_DNSSD */
*srv = NULL;