diff options
| author | Donald Sharp <sharpd@nvidia.com> | 2022-06-18 14:37:14 -0400 | 
|---|---|---|
| committer | Donald Sharp <sharpd@nvidia.com> | 2022-06-23 14:06:49 -0400 | 
| commit | 91a5bbc4de1bfe03618b5c4d11cf32f45e20e8e7 (patch) | |
| tree | 43cf0251f8df96097a5d89a7c62c09a9c23583dd /isisd/fabricd.c | |
| parent | de448ea2e88b01b99c0a2966dbb028f0fb4cfe59 (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.c | 4 | 
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;  | 
