Revert "bgpd: fix illegal memory access in bgp_ls_tlv_check_size()"

This reverts commit dae5791c44.

(cherry picked from commit 73a4891ab3)
This commit is contained in:
Donald Sharp 2023-10-10 16:31:01 -04:00 committed by Mergify
parent 0f02b85a18
commit 609ee2bd4b
2 changed files with 5 additions and 5 deletions

View File

@ -31,7 +31,7 @@ struct bgp_linkstate_tlv_info {
#define UNDEF_MULTPL 1 #define UNDEF_MULTPL 1
/* clang-format off */ /* clang-format off */
struct bgp_linkstate_tlv_info bgp_linkstate_tlv_infos[BGP_LS_TLV_MAX + 1] = { struct bgp_linkstate_tlv_info bgp_linkstate_tlv_infos[BGP_LS_TLV_MAX] = {
/* NLRI TLV */ /* NLRI TLV */
[BGP_LS_TLV_LOCAL_NODE_DESCRIPTORS] = {"Local Node Descriptors", 1, MAX_SZ, UNDEF_MULTPL}, [BGP_LS_TLV_LOCAL_NODE_DESCRIPTORS] = {"Local Node Descriptors", 1, MAX_SZ, UNDEF_MULTPL},
[BGP_LS_TLV_REMOTE_NODE_DESCRIPTORS] = {"Remote Node Descriptors", 1, MAX_SZ, UNDEF_MULTPL}, [BGP_LS_TLV_REMOTE_NODE_DESCRIPTORS] = {"Remote Node Descriptors", 1, MAX_SZ, UNDEF_MULTPL},
@ -1705,7 +1705,7 @@ void bgp_linkstate_tlv_attribute_display(struct vty *vty,
json_tlv = json_object_new_object(); json_tlv = json_object_new_object();
json_object_object_add(json, tlv_type, json_tlv); json_object_object_add(json, tlv_type, json_tlv);
if (type <= BGP_LS_TLV_MAX && if (type < BGP_LS_TLV_MAX &&
bgp_linkstate_tlv_infos[type].descr != NULL) bgp_linkstate_tlv_infos[type].descr != NULL)
json_object_string_add( json_object_string_add(
json_tlv, "description", json_tlv, "description",
@ -1720,7 +1720,7 @@ void bgp_linkstate_tlv_attribute_display(struct vty *vty,
"too high length received: %u", length); "too high length received: %u", length);
break; break;
} }
if (type <= BGP_LS_TLV_MAX && if (type < BGP_LS_TLV_MAX &&
bgp_linkstate_tlv_infos[type].descr != NULL && bgp_linkstate_tlv_infos[type].descr != NULL &&
!bgp_ls_tlv_check_size(type, length)) !bgp_ls_tlv_check_size(type, length))
json_object_string_addf( json_object_string_addf(
@ -1728,7 +1728,7 @@ void bgp_linkstate_tlv_attribute_display(struct vty *vty,
"unexpected length received: %u", "unexpected length received: %u",
length); length);
} else { } else {
if (type <= BGP_LS_TLV_MAX && if (type < BGP_LS_TLV_MAX &&
bgp_linkstate_tlv_infos[type].descr != NULL) bgp_linkstate_tlv_infos[type].descr != NULL)
vty_out(vty, "%*s%s: ", indent, "", vty_out(vty, "%*s%s: ", indent, "",
bgp_linkstate_tlv_infos[type].descr); bgp_linkstate_tlv_infos[type].descr);

View File

@ -197,7 +197,7 @@ enum bgp_linkstate_tlv {
1251, /* draft-ietf-idr-bgpls-srv6-ext-08 */ 1251, /* draft-ietf-idr-bgpls-srv6-ext-08 */
BGP_LS_TLV_SRV6_SID_STRUCTURE_TLV = BGP_LS_TLV_SRV6_SID_STRUCTURE_TLV =
1252, /* draft-ietf-idr-bgpls-srv6-ext-08 */ 1252, /* draft-ietf-idr-bgpls-srv6-ext-08 */
BGP_LS_TLV_MAX = 1252, /* max TLV value for table size*/ BGP_LS_TLV_MAX = 1253, /* max TLV value for table size*/
}; };
/* RFC7752 #3.2.1.4 IGP router-ID */ /* RFC7752 #3.2.1.4 IGP router-ID */