bgpd: Check if su_local/su_remote exist before encoding BMP peer state

Fixes: 035304c25a ("bgpd: bmp loc-rib peer up/down for vrfs")

Signed-off-by: Donatas Abraitis <donatas@opensourcerouting.org>
This commit is contained in:
Donatas Abraitis 2024-10-15 12:51:51 +03:00
parent 5c194b3639
commit e15eb6a089

View file

@ -501,14 +501,14 @@ static struct stream *bmp_peerstate(struct peer *peer, bool down)
}
/* Local Port, Remote Port */
if (is_locrib)
if (!peer->su_local || is_locrib)
stream_putw(s, 0);
else if (peer->su_local->sa.sa_family == AF_INET6)
stream_putw(s, htons(peer->su_local->sin6.sin6_port));
else if (peer->su_local->sa.sa_family == AF_INET)
stream_putw(s, htons(peer->su_local->sin.sin_port));
if (is_locrib)
if (!peer->su_remote || is_locrib)
stream_putw(s, 0);
else if (peer->su_remote->sa.sa_family == AF_INET6)
stream_putw(s, htons(peer->su_remote->sin6.sin6_port));