summaryrefslogtreecommitdiff
path: root/lib/bfd.c
diff options
context:
space:
mode:
authoranlan_cs <anlan_cs@tom.com>2022-01-12 07:53:25 -0500
committeranlan_cs <anlan_cs@tom.com>2022-01-12 08:08:29 -0500
commit10f02a2ac936737cb5841cec5e8c063514fd5c70 (patch)
treebf74af97457a263dcfc64ea6f4a947fcb89432b5 /lib/bfd.c
parent4d33086cadd1a1094eb29e7f261d0d3a2ac4ccfd (diff)
lib: fix the right value is returned for fail cases
Currently `bfd_get_peer_info` should return invalid sp->family and dp->family during fail cases. Before this fix, in those fail cases `bfd_get_peer_info` maybe return valid sp->family and dp->family. This fix ensures all fail cases return invalid sp->family and dp->family for outside callers. Signed-off-by: anlan_cs <anlan_cs@tom.com>
Diffstat (limited to 'lib/bfd.c')
-rw-r--r--lib/bfd.c6
1 files changed, 6 insertions, 0 deletions
diff --git a/lib/bfd.c b/lib/bfd.c
index e364297457..7b711a9fba 100644
--- a/lib/bfd.c
+++ b/lib/bfd.c
@@ -171,6 +171,12 @@ static struct interface *bfd_get_peer_info(struct stream *s, struct prefix *dp,
return ifp;
stream_failure:
+ /*
+ * Clean dp and sp because caller
+ * will immediately check them valid or not
+ */
+ memset(dp, 0, sizeof(*dp));
+ memset(sp, 0, sizeof(*sp));
return NULL;
}