Coverity is pointing out that bfd_key_delete is
passing by value instead of reference for a very
large structure. Double plus not good.
Signed-off-by: Donald Sharp <sharpd@nvidia.com>
(cherry picked from commit
8119e167b0ae95927618696ba11d7252d9d5637c)
/* Remove session from data plane if any. */
bfd_dplane_delete_session(bs);
- bfd_key_delete(bs->key);
+ bfd_key_delete(&bs->key);
bfd_id_delete(bs->discrs.my_discr);
/* Remove observer if any. */
return hash_release(bfd_id_hash, &bs);
}
-struct bfd_session *bfd_key_delete(struct bfd_key key)
+struct bfd_session *bfd_key_delete(struct bfd_key *key)
{
struct bfd_session bs;
- bs.key = key;
+ bs.key = *key;
return hash_release(bfd_key_hash, &bs);
}
struct bfd_session *bfd_key_lookup(struct bfd_key *key);
struct sbfd_reflector *sbfd_discr_lookup(uint32_t discr);
struct bfd_session *bfd_id_delete(uint32_t id);
-struct bfd_session *bfd_key_delete(struct bfd_key key);
+struct bfd_session *bfd_key_delete(struct bfd_key *key);
struct sbfd_reflector *sbfd_discr_delete(uint32_t discr);
bool bfd_id_insert(struct bfd_session *bs);