mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-11 11:21:07 +00:00
bgpd: Fix crashes when no default bgp instance is configured.
The vnc code assumes that bgp must have a default instance. This code change checks to make sure that we do before proceeding. It makes no assurances that vnc will behave correctly without a default instance. Signed-off-by: Donald Sharp <sharpd@cumulusnetworks.com> Signed-off-by: David Lamparter <equinox@opensourcerouting.org>
This commit is contained in:
parent
94d95cde35
commit
34620e24b5
@ -4414,7 +4414,8 @@ rfapiProcessPeerDown (struct peer *peer)
|
||||
*/
|
||||
|
||||
bgp = bgp_get_default (); /* assume 1 instance for now */
|
||||
assert (bgp);
|
||||
if (!bgp)
|
||||
return;
|
||||
|
||||
h = bgp->rfapi;
|
||||
assert (h);
|
||||
|
@ -208,12 +208,17 @@ prefix_bag_free (void *pb)
|
||||
static void
|
||||
print_rhn_list (const char *tag1, const char *tag2)
|
||||
{
|
||||
struct bgp *bgp = bgp_get_default ();
|
||||
struct skiplist *sl = bgp->rfapi->resolve_nve_nexthop;
|
||||
struct bgp *bgp;
|
||||
struct skiplist *sl;
|
||||
struct skiplistnode *p;
|
||||
struct prefix_bag *pb;
|
||||
int count = 0;
|
||||
|
||||
bgp = bgp_get_default ();
|
||||
if (!bgp)
|
||||
return;
|
||||
|
||||
sl = bgp->frapi->resolve_nve_nexthop;
|
||||
if (!sl)
|
||||
{
|
||||
zlog_debug ("%s: %s: RHN List is empty", (tag1 ? tag1 : ""),
|
||||
@ -251,6 +256,8 @@ vnc_rhnck (char *tag)
|
||||
struct skiplistnode *p;
|
||||
|
||||
bgp = bgp_get_default ();
|
||||
if (!bgp)
|
||||
return;
|
||||
sl = bgp->rfapi->resolve_nve_nexthop;
|
||||
|
||||
if (!sl)
|
||||
@ -1798,6 +1805,9 @@ vnc_import_bgp_exterior_add_route_it (
|
||||
struct bgp *bgp_default = bgp_get_default ();
|
||||
afi_t afi = family2afi (prefix->family);
|
||||
|
||||
if (!bgp_default)
|
||||
return;
|
||||
|
||||
h = bgp_default->rfapi;
|
||||
hc = bgp_default->rfapi_cfg;
|
||||
|
||||
@ -1992,6 +2002,9 @@ vnc_import_bgp_exterior_del_route (
|
||||
afi_t afi = family2afi (prefix->family);
|
||||
struct bgp *bgp_default = bgp_get_default ();
|
||||
|
||||
if (!bgp_default)
|
||||
return;
|
||||
|
||||
memset (&pfx_orig_nexthop, 0, sizeof (struct prefix)); /* keep valgrind happy */
|
||||
|
||||
h = bgp_default->rfapi;
|
||||
|
Loading…
Reference in New Issue
Block a user