diff options
Diffstat (limited to 'services/authzone.c')
-rw-r--r-- | services/authzone.c | 5 |
1 files changed, 4 insertions, 1 deletions
diff --git a/services/authzone.c b/services/authzone.c index 1f56ac8cfc87..7ec280bafd92 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, |