mirror of
https://gitlab.isc.org/isc-projects/bind9
synced 2025-09-02 07:35:26 +00:00
Merge branch '3258-cid-351370-cid-351371-after-adb-refactoring' into 'main'
Resolve "CID 351370 & CID 351371 after ADB refactoring" Closes #3258 See merge request isc-projects/bind9!6089
This commit is contained in:
@@ -2612,18 +2612,16 @@ post_copy:
|
|||||||
find->result_v4 = find_err_map[adbname->fetch_err];
|
find->result_v4 = find_err_map[adbname->fetch_err];
|
||||||
find->result_v6 = find_err_map[adbname->fetch6_err];
|
find->result_v6 = find_err_map[adbname->fetch6_err];
|
||||||
|
|
||||||
if (find != NULL) {
|
if (want_event) {
|
||||||
if (want_event) {
|
INSIST((find->flags & DNS_ADBFIND_ADDRESSMASK) != 0);
|
||||||
INSIST((find->flags & DNS_ADBFIND_ADDRESSMASK) != 0);
|
isc_task_attach(task, &(isc_task_t *){ NULL });
|
||||||
isc_task_attach(task, &(isc_task_t *){ NULL });
|
find->event.ev_sender = task;
|
||||||
find->event.ev_sender = task;
|
find->event.ev_action = action;
|
||||||
find->event.ev_action = action;
|
find->event.ev_arg = arg;
|
||||||
find->event.ev_arg = arg;
|
|
||||||
}
|
|
||||||
|
|
||||||
*findp = find;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
|
*findp = find;
|
||||||
|
|
||||||
UNLOCK(&nbucket->lock);
|
UNLOCK(&nbucket->lock);
|
||||||
return (result);
|
return (result);
|
||||||
}
|
}
|
||||||
@@ -2689,14 +2687,14 @@ dns_adb_cancelfind(dns_adbfind_t *find) {
|
|||||||
adbname = find->adbname;
|
adbname = find->adbname;
|
||||||
find->adbname = NULL;
|
find->adbname = NULL;
|
||||||
nbucket = adbname->bucket;
|
nbucket = adbname->bucket;
|
||||||
UNLOCK(&find->lock);
|
|
||||||
|
|
||||||
|
UNLOCK(&find->lock);
|
||||||
LOCK(&nbucket->lock);
|
LOCK(&nbucket->lock);
|
||||||
ISC_LIST_UNLINK(adbname->finds, find, plink);
|
ISC_LIST_UNLINK(adbname->finds, find, plink);
|
||||||
UNLOCK(&nbucket->lock);
|
UNLOCK(&nbucket->lock);
|
||||||
|
LOCK(&find->lock);
|
||||||
|
|
||||||
cleanup:
|
cleanup:
|
||||||
LOCK(&find->lock);
|
|
||||||
if (!FIND_EVENTSENT(find)) {
|
if (!FIND_EVENTSENT(find)) {
|
||||||
ev = &find->event;
|
ev = &find->event;
|
||||||
task = ev->ev_sender;
|
task = ev->ev_sender;
|
||||||
|
Reference in New Issue
Block a user