diff options
| author | Donald Sharp <sharpd@cumulusnetworks.com> | 2020-11-05 20:54:02 -0500 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2020-11-05 20:54:02 -0500 |
| commit | 164f94a45292dacf12c61265b6a56f4594c613c3 (patch) | |
| tree | fb40067eccc04426de41f7e8a5c438fff75aba7c | |
| parent | 9f6c4d4d163f2260b399f9e81a20b92ef756cc1e (diff) | |
| parent | 1db60b576b0c25dd72d6c6f553fac0ea3b610efc (diff) | |
Merge pull request #7466 from idryzhov/fix-bfd-null-deref
bfdd: fix possible null dereference
| -rw-r--r-- | bfdd/bfd_packet.c | 4 |
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; |
