summaryrefslogtreecommitdiff
path: root/isisd/fabricd.c
diff options
context:
space:
mode:
authorDonald Sharp <sharpd@nvidia.com>2022-06-18 14:37:14 -0400
committerDonald Sharp <sharpd@nvidia.com>2022-06-23 14:06:49 -0400
commit91a5bbc4de1bfe03618b5c4d11cf32f45e20e8e7 (patch)
tree43cf0251f8df96097a5d89a7c62c09a9c23583dd /isisd/fabricd.c
parentde448ea2e88b01b99c0a2966dbb028f0fb4cfe59 (diff)
isisd: Fix crash with xfrm interface type
When creating a xfrm interface FRR is crashing when configured with isis. This is because the weird pattern of not allocating list's until needed and then allowing the crash when we have a usage pattern that was not expected. Just always allocate the different lists that a circuit needs. (gdb) bt (gdb) Fixes #11432 Signed-off-by: Donald Sharp <sharpd@nvidia.com>
Diffstat (limited to 'isisd/fabricd.c')
-rw-r--r--isisd/fabricd.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/isisd/fabricd.c b/isisd/fabricd.c
index 3e0d4ba549..d431787ebb 100644
--- a/isisd/fabricd.c
+++ b/isisd/fabricd.c
@@ -728,7 +728,7 @@ void fabricd_trigger_csnp(struct isis_area *area, bool circuit_scoped)
struct list *fabricd_ip_addrs(struct isis_circuit *circuit)
{
- if (circuit->ip_addrs && listcount(circuit->ip_addrs))
+ if (listcount(circuit->ip_addrs))
return circuit->ip_addrs;
if (!fabricd || !circuit->area || !circuit->area->circuit_list)
@@ -741,7 +741,7 @@ struct list *fabricd_ip_addrs(struct isis_circuit *circuit)
if (c->circ_type != CIRCUIT_T_LOOPBACK)
continue;
- if (!c->ip_addrs || !listcount(c->ip_addrs))
+ if (!listcount(c->ip_addrs))
return NULL;
return c->ip_addrs;