summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDonald Sharp <sharpd@cumulusnetworks.com>2020-11-05 20:54:02 -0500
committerGitHub <noreply@github.com>2020-11-05 20:54:02 -0500
commit164f94a45292dacf12c61265b6a56f4594c613c3 (patch)
treefb40067eccc04426de41f7e8a5c438fff75aba7c
parent9f6c4d4d163f2260b399f9e81a20b92ef756cc1e (diff)
parent1db60b576b0c25dd72d6c6f553fac0ea3b610efc (diff)
Merge pull request #7466 from idryzhov/fix-bfd-null-deref
bfdd: fix possible null dereference
-rw-r--r--bfdd/bfd_packet.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/bfdd/bfd_packet.c b/bfdd/bfd_packet.c
index 5cc47d5a44..0a71c18a42 100644
--- a/bfdd/bfd_packet.c
+++ b/bfdd/bfd_packet.c
@@ -80,7 +80,7 @@ int _ptm_bfd_send(struct bfd_session *bs, uint16_t *port, const void *data,
memset(&sin6, 0, sizeof(sin6));
sin6.sin6_family = AF_INET6;
memcpy(&sin6.sin6_addr, &bs->key.peer, sizeof(sin6.sin6_addr));
- if (IN6_IS_ADDR_LINKLOCAL(&sin6.sin6_addr))
+ if (bs->ifp && IN6_IS_ADDR_LINKLOCAL(&sin6.sin6_addr))
sin6.sin6_scope_id = bs->ifp->ifindex;
sin6.sin6_port =
@@ -1051,7 +1051,7 @@ int bp_peer_socketv6(const struct bfd_session *bs)
sin6.sin6_len = sizeof(sin6);
#endif /* HAVE_STRUCT_SOCKADDR_SA_LEN */
memcpy(&sin6.sin6_addr, &bs->key.local, sizeof(sin6.sin6_addr));
- if (IN6_IS_ADDR_LINKLOCAL(&sin6.sin6_addr))
+ if (bs->ifp && IN6_IS_ADDR_LINKLOCAL(&sin6.sin6_addr))
sin6.sin6_scope_id = bs->ifp->ifindex;
pcount = 0;