mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-07 03:53:38 +00:00
ospf6d: fix segfault when requesting inexistant interfaces or areas
This commit is contained in:
parent
bf836661ef
commit
0402ca4e92
@ -708,12 +708,13 @@ ospfv3WwLsdbEntry (struct variable *v, oid *name, size_t *length,
|
|||||||
else if (v->magic & OSPFv3WWAREATABLE)
|
else if (v->magic & OSPFv3WWAREATABLE)
|
||||||
{
|
{
|
||||||
oa = ospf6_area_lookup (area_id, ospf6);
|
oa = ospf6_area_lookup (area_id, ospf6);
|
||||||
|
if (!oa) return NULL;
|
||||||
lsa = ospf6_lsdb_lookup (type, id, adv_router, oa->lsdb);
|
lsa = ospf6_lsdb_lookup (type, id, adv_router, oa->lsdb);
|
||||||
}
|
}
|
||||||
else if (v->magic & OSPFv3WWLINKTABLE)
|
else if (v->magic & OSPFv3WWLINKTABLE)
|
||||||
{
|
{
|
||||||
oi = ospf6_interface_lookup_by_ifindex (ifindex);
|
oi = ospf6_interface_lookup_by_ifindex (ifindex);
|
||||||
if (oi->instance_id != instid) return NULL;
|
if (!oi || oi->instance_id != instid) return NULL;
|
||||||
lsa = ospf6_lsdb_lookup (type, id, adv_router, oi->lsdb);
|
lsa = ospf6_lsdb_lookup (type, id, adv_router, oi->lsdb);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
@ -875,7 +876,7 @@ ospfv3IfEntry (struct variable *v, oid *name, size_t *length,
|
|||||||
if (exact)
|
if (exact)
|
||||||
{
|
{
|
||||||
oi = ospf6_interface_lookup_by_ifindex (ifindex);
|
oi = ospf6_interface_lookup_by_ifindex (ifindex);
|
||||||
if (oi->instance_id != instid) return NULL;
|
if (!oi || oi->instance_id != instid) return NULL;
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -1034,8 +1035,8 @@ ospfv3NbrEntry (struct variable *v, oid *name, size_t *length,
|
|||||||
if (exact)
|
if (exact)
|
||||||
{
|
{
|
||||||
oi = ospf6_interface_lookup_by_ifindex (ifindex);
|
oi = ospf6_interface_lookup_by_ifindex (ifindex);
|
||||||
|
if (!oi || oi->instance_id != instid) return NULL;
|
||||||
on = ospf6_neighbor_lookup (rtrid, oi);
|
on = ospf6_neighbor_lookup (rtrid, oi);
|
||||||
if (oi->instance_id != instid) return NULL;
|
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
@ -1060,7 +1061,8 @@ ospfv3NbrEntry (struct variable *v, oid *name, size_t *length,
|
|||||||
break;
|
break;
|
||||||
}
|
}
|
||||||
if (on) break;
|
if (on) break;
|
||||||
oi = on = NULL;
|
oi = NULL;
|
||||||
|
on = NULL;
|
||||||
}
|
}
|
||||||
|
|
||||||
list_delete_all_node (ifslist);
|
list_delete_all_node (ifslist);
|
||||||
|
Loading…
Reference in New Issue
Block a user