diff --git a/CHANGES b/CHANGES index 2e865b30cb..6eaed786ac 100644 --- a/CHANGES +++ b/CHANGES @@ -1,3 +1,5 @@ +5184. [bug] Missing unlocks in sdlz.c. [GL #936] + 5183. [bug] Reinitialize ECS data before reusing client structures. [GL #881] diff --git a/lib/dns/sdlz.c b/lib/dns/sdlz.c index 2fd1f900a8..39f3032148 100644 --- a/lib/dns/sdlz.c +++ b/lib/dns/sdlz.c @@ -622,15 +622,19 @@ getnodedata(dns_db_t *db, const dns_name_t *name, bool create, result = dns_name_concatenate(dns_wildcardname, fname, fname, NULL); - if (result != ISC_R_SUCCESS) + if (result != ISC_R_SUCCESS) { + MAYBE_UNLOCK(sdlz->dlzimp); return (result); + } wild = fname; } isc_buffer_init(&b, wildstr, sizeof(wildstr)); result = dns_name_totext(wild, true, &b); - if (result != ISC_R_SUCCESS) + if (result != ISC_R_SUCCESS) { + MAYBE_UNLOCK(sdlz->dlzimp); return (result); + } isc_buffer_putuint8(&b, 0); result = sdlz->dlzimp->methods->lookup(zonestr, wildstr,