From: Wouter Wijngaards Date: Mon, 4 Jun 2018 09:01:55 +0000 (+0000) Subject: - Fix deadlock caused by incoming notify for auth-zone. X-Git-Tag: release-1.7.2rc1~1 X-Git-Url: http://git.ipfire.org/?a=commitdiff_plain;h=1cadc5d677b93cf368815f6516168e8eb53d18a2;p=thirdparty%2Funbound.git - Fix deadlock caused by incoming notify for auth-zone. git-svn-id: file:///svn/unbound/trunk@4704 be551aaa-1e26-0410-a405-d3ace91eadb9 --- diff --git a/doc/Changelog b/doc/Changelog index 8f74bd06f..a199a9fea 100644 --- a/doc/Changelog +++ b/doc/Changelog @@ -1,3 +1,6 @@ +4 June 2018: Wouter + - Fix deadlock caused by incoming notify for auth-zone. + 1 June 2018: Wouter - Rename additional-tls-port to tls-additional-ports. The older name is accepted for backwards compatibility. diff --git a/services/authzone.c b/services/authzone.c index 1f56ac8cf..7ec280baf 100644 --- a/services/authzone.c +++ b/services/authzone.c @@ -3425,14 +3425,17 @@ xfr_process_notify(struct auth_xfer* xfr, struct module_env* env, { /* if the serial of notify is older than we have, don't fetch * a zone, we already have it */ - if(has_serial && !xfr_serial_means_update(xfr, serial)) + if(has_serial && !xfr_serial_means_update(xfr, serial)) { + lock_basic_unlock(&xfr->lock); return; + } /* start new probe with this addr src, or note serial */ if(!xfr_start_probe(xfr, env, fromhost)) { /* not started because already in progress, note the serial */ xfr_note_notify_serial(xfr, has_serial, serial); lock_basic_unlock(&xfr->lock); } + /* successful end of start_probe unlocked xfr->lock */ } int auth_zones_notify(struct auth_zones* az, struct module_env* env,