From: Maria Matejka Date: Fri, 16 Aug 2019 12:04:53 +0000 (+0200) Subject: OSPF: Adding a note about a static analyzer result. X-Git-Tag: v2.0.8~77^2~14 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=9e64ac4b7c23aa3b8b9149794c05305315cf31e5;p=thirdparty%2Fbird.git OSPF: Adding a note about a static analyzer result. --- diff --git a/proto/ospf/topology.c b/proto/ospf/topology.c index 2e9c39655..c8ec730a1 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) &&