diff --git a/bgpd/bgp_network.c b/bgpd/bgp_network.c index f3857162c3..860c5fd382 100644 --- a/bgpd/bgp_network.c +++ b/bgpd/bgp_network.c @@ -572,7 +572,9 @@ static int bgp_accept(struct thread *thread) peer->doppelganger = peer1; peer1->doppelganger = peer; peer->fd = bgp_sock; - vrf_bind(peer->bgp->vrf_id, bgp_sock, bgp_get_bound_name(peer)); + frr_with_privs(&bgpd_privs) { + vrf_bind(peer->bgp->vrf_id, bgp_sock, bgp_get_bound_name(peer)); + } bgp_peer_reg_with_nht(peer); bgp_fsm_change_status(peer, Active); BGP_TIMER_OFF(peer->t_start); /* created in peer_create() */