diff options
| author | Donald Sharp <donaldsharp72@gmail.com> | 2024-09-13 11:27:03 -0400 | 
|---|---|---|
| committer | GitHub <noreply@github.com> | 2024-09-13 11:27:03 -0400 | 
| commit | fcbe34b1e5c8bbef938568914efee9fa56645080 (patch) | |
| tree | fd432bd85f543f152ee6f35e7945b877f5b965b1 | |
| parent | ecbbda49bccba7b18653133f9bfa81bd7ee58ac6 (diff) | |
| parent | ca92b815458afd5b9f35b6240ce804046637ab25 (diff) | |
Merge pull request #16817 from opensourcerouting/fix/backports_for_8.4
Manual backport for 8.4
| -rw-r--r-- | bgpd/bgp_attr.c | 8 | ||||
| -rw-r--r-- | bgpd/bgp_rpki.c | 3 | ||||
| -rw-r--r-- | isisd/isis_te.c | 2 | 
3 files changed, 11 insertions, 2 deletions
diff --git a/bgpd/bgp_attr.c b/bgpd/bgp_attr.c index 13bc05d638..2cb3164f26 100644 --- a/bgpd/bgp_attr.c +++ b/bgpd/bgp_attr.c @@ -2510,6 +2510,14 @@ static int bgp_attr_encap(struct bgp_attr_parser_args *args)  						  args->total);  		} +		if (STREAM_READABLE(BGP_INPUT(peer)) < sublength) { +			zlog_err("Tunnel Encap attribute sub-tlv length %d exceeds remaining stream length %zu", +				 sublength, STREAM_READABLE(BGP_INPUT(peer))); +			return bgp_attr_malformed(args, +						  BGP_NOTIFY_UPDATE_OPT_ATTR_ERR, +						  args->total); +		} +  		/* alloc and copy sub-tlv */  		/* TBD make sure these are freed when attributes are released */  		tlv = XCALLOC(MTYPE_ENCAP_TLV, diff --git a/bgpd/bgp_rpki.c b/bgpd/bgp_rpki.c index 5743e5da67..1ca83fa169 100644 --- a/bgpd/bgp_rpki.c +++ b/bgpd/bgp_rpki.c @@ -282,7 +282,8 @@ static void rpki_delete_all_cache_nodes(void)  	struct cache *cache;  	for (ALL_LIST_ELEMENTS(cache_list, cache_node, cache_next, cache)) { -		rtr_mgr_remove_group(rtr_config, cache->preference); +		if (is_running()) +			rtr_mgr_remove_group(rtr_config, cache->preference);  		listnode_delete(cache_list, cache);  	}  } diff --git a/isisd/isis_te.c b/isisd/isis_te.c index 0093279cde..57e876faa0 100644 --- a/isisd/isis_te.c +++ b/isisd/isis_te.c @@ -188,7 +188,7 @@ void isis_link_params_update(struct isis_circuit *circuit,  		return;  	/* Sanity Check */ -	if ((ifp == NULL) || (circuit->state != C_STATE_UP)) +	if (ifp == NULL)  		return;  	te_debug("ISIS-TE(%s): Update circuit parameters for interface %s",  | 
