aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorMaria Matejka <mq@ucw.cz>2019-08-16 14:04:53 +0200
committerMaria Matejka <mq@ucw.cz>2020-05-01 15:19:12 +0200
commit9e64ac4b7c23aa3b8b9149794c05305315cf31e5 (patch)
treee6d59609d873431177c12e2b237ce50dd94fe81a
parentdccee408262262ab9a63403141b74a0d937284bc (diff)
downloadbird-9e64ac4b7c23aa3b8b9149794c05305315cf31e5.tar.gz
OSPF: Adding a note about a static analyzer result.
-rw-r--r--proto/ospf/topology.c8
1 files changed, 8 insertions, 0 deletions
diff --git a/proto/ospf/topology.c b/proto/ospf/topology.c
index 2e9c3965..c8ec730a 100644
--- a/proto/ospf/topology.c
+++ b/proto/ospf/topology.c
@@ -329,6 +329,14 @@ ospf_originate_lsa(struct ospf_proto *p, struct ospf_new_lsa *lsa)
en->next_lsa_opts = 0;
}
+ /* The static analyzer complains here that en->lsa_body may be NULL.
+ * Yes, it may if ospf_hash_get() creates a new struct top_hash_entry.
+ * In this case, also en->lsa.length must be 0 and lsa_length is never
+ * equal to 0 while sizeof(struct ospf_lsa_header) is non-zero.
+ * Therefore memcmp() is never executed with NULL here.
+ * */
+ ASSUME((en->lsa.length == 0) == (en->lsa_body == NULL));
+
/* Ignore the the new LSA if is the same as the current one */
if ((en->lsa.age < LSA_MAXAGE) &&
(lsa_length == en->lsa.length) &&