From 05e08a21d125bc8f65fbd4bf41d7c80bb973bd1b Mon Sep 17 00:00:00 2001 From: Mark Andrews Date: Wed, 6 Apr 2022 12:54:08 +1000 Subject: [PATCH] Remove unnecessary NULL test leading to REVERSE_INULL false positive *** CID 351371: Null pointer dereferences (REVERSE_INULL) /lib/dns/adb.c: 2615 in dns_adb_createfind() 2609 /* 2610 * Copy out error flags from the name structure into the find. 2611 */ 2612 find->result_v4 = find_err_map[adbname->fetch_err]; 2613 find->result_v6 = find_err_map[adbname->fetch6_err]; 2614 >>> CID 351371: Null pointer dereferences (REVERSE_INULL) >>> Null-checking "find" suggests that it may be null, but it has already been dereferenced on all paths leading to the check. 2615 if (find != NULL) { 2616 if (want_event) { 2617 INSIST((find->flags & DNS_ADBFIND_ADDRESSMASK) != 0); 2618 isc_task_attach(task, &(isc_task_t *){ NULL }); 2619 find->event.ev_sender = task; 2620 find->event.ev_action = action; --- lib/dns/adb.c | 18 ++++++++---------- 1 file changed, 8 insertions(+), 10 deletions(-) diff --git a/lib/dns/adb.c b/lib/dns/adb.c index c0c9b6ceca..e572dee239 100644 --- a/lib/dns/adb.c +++ b/lib/dns/adb.c @@ -2612,18 +2612,16 @@ post_copy: find->result_v4 = find_err_map[adbname->fetch_err]; find->result_v6 = find_err_map[adbname->fetch6_err]; - if (find != NULL) { - if (want_event) { - INSIST((find->flags & DNS_ADBFIND_ADDRESSMASK) != 0); - isc_task_attach(task, &(isc_task_t *){ NULL }); - find->event.ev_sender = task; - find->event.ev_action = action; - find->event.ev_arg = arg; - } - - *findp = find; + if (want_event) { + INSIST((find->flags & DNS_ADBFIND_ADDRESSMASK) != 0); + isc_task_attach(task, &(isc_task_t *){ NULL }); + find->event.ev_sender = task; + find->event.ev_action = action; + find->event.ev_arg = arg; } + *findp = find; + UNLOCK(&nbucket->lock); return (result); }