From 4bb7d9fd1241a3c263636efa03ee8c62ab744515 Mon Sep 17 00:00:00 2001 From: Taylor Yu Date: Mon, 26 Mar 2018 17:51:50 -0500 Subject: Fix CID 1430932 Coverity found a null pointer reference in nodelist_add_microdesc(). This is almost certainly impossible assuming that the routerstatus_t returned by router_get_consensus_status_by_descriptor_digest() always corresponds to an entry in the nodelist. Fixes bug 25629. --- src/or/nodelist.c | 13 ++++++------- 1 file changed, 6 insertions(+), 7 deletions(-) (limited to 'src') diff --git a/src/or/nodelist.c b/src/or/nodelist.c index 5a02648c5c..26f990b08c 100644 --- a/src/or/nodelist.c +++ b/src/or/nodelist.c @@ -263,13 +263,12 @@ nodelist_add_microdesc(microdesc_t *md) if (rs == NULL) return NULL; node = node_get_mutable_by_id(rs->identity_digest); - if (node) { - if (node->md) - node->md->held_by_nodes--; - node->md = md; - md->held_by_nodes++; - } - + if (node == NULL) + return NULL; + if (node->md) + node->md->held_by_nodes--; + node->md = md; + md->held_by_nodes++; node_add_to_address_set(node); return node; -- cgit v1.2.3-54-g00ecf