From: Mark Andrews Date: Wed, 6 Apr 2022 02:54:08 +0000 (+1000) Subject: Remove unnecessary NULL test leading to REVERSE_INULL false positive X-Git-Tag: v9.19.0~13^2~1 X-Git-Url: http://git.ipfire.org/gitweb.cgi?a=commitdiff_plain;h=05e08a21d125bc8f65fbd4bf41d7c80bb973bd1b;p=thirdparty%2Fbind9.git 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; --- diff --git a/lib/dns/adb.c b/lib/dns/adb.c index c0c9b6ceca3..e572dee2391 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); }