diff options
author | Michael Sweet <michael.r.sweet@gmail.com> | 2017-08-28 10:04:29 -0400 |
---|---|---|
committer | Michael Sweet <michael.r.sweet@gmail.com> | 2017-08-28 10:04:29 -0400 |
commit | b337f966e85ec2ae65769ee6bab12f78edcfafa5 (patch) | |
tree | d18f0502fff196830f9e8689418363cc10347c66 /scheduler/dirsvc.c | |
parent | e9b2d701dae26930a356408ada2c4f7eacc59100 (diff) | |
download | cups-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.c | 13 |
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; |