mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-05-25 09:54:28 +00:00
bgpd: fix valgrind flagged errors
Executed some evpn related tests with valgrind and saw some errors related to uninitialized memory and overlapping memcpy. This commit fixes those. Ticket: CM-21218 Signed-off-by: Nitin Soni <nsoni@cumulusnetworks.com> Reviewed-by: CCR-8249
This commit is contained in:
parent
12aa381645
commit
8ba7105057
@ -368,6 +368,8 @@ int bgp_dump_attr(struct attr *attr, char *buf, size_t size)
|
||||
if (!attr)
|
||||
return 0;
|
||||
|
||||
buf[0] = '\0';
|
||||
|
||||
if (CHECK_FLAG(attr->flag, ATTR_FLAG_BIT(BGP_ATTR_NEXT_HOP)))
|
||||
snprintf(buf, size, "nexthop %s", inet_ntoa(attr->nexthop));
|
||||
|
||||
|
@ -5279,7 +5279,7 @@ int bgp_filter_evpn_routes_upon_martian_nh_change(struct bgp *bgp)
|
||||
|
||||
if (bgp_nexthop_self(bgp, pi->attr->nexthop)) {
|
||||
|
||||
char attr_str[BUFSIZ];
|
||||
char attr_str[BUFSIZ] = {0};
|
||||
char pbuf[PREFIX_STRLEN];
|
||||
|
||||
bgp_dump_attr(pi->attr, attr_str,
|
||||
|
@ -3245,9 +3245,11 @@ int bgp_update(struct peer *peer, struct prefix *p, uint32_t addpath_id,
|
||||
/* Update MPLS label */
|
||||
if (has_valid_label) {
|
||||
extra = bgp_path_info_extra_get(pi);
|
||||
memcpy(&extra->label, label,
|
||||
num_labels * sizeof(mpls_label_t));
|
||||
extra->num_labels = num_labels;
|
||||
if (extra->label != label) {
|
||||
memcpy(&extra->label, label,
|
||||
num_labels * sizeof(mpls_label_t));
|
||||
extra->num_labels = num_labels;
|
||||
}
|
||||
if (!(afi == AFI_L2VPN && safi == SAFI_EVPN))
|
||||
bgp_set_valid_label(&extra->label[0]);
|
||||
}
|
||||
@ -3416,8 +3418,10 @@ int bgp_update(struct peer *peer, struct prefix *p, uint32_t addpath_id,
|
||||
/* Update MPLS label */
|
||||
if (has_valid_label) {
|
||||
extra = bgp_path_info_extra_get(new);
|
||||
memcpy(&extra->label, label, num_labels * sizeof(mpls_label_t));
|
||||
extra->num_labels = num_labels;
|
||||
if (extra->label != label) {
|
||||
memcpy(&extra->label, label, num_labels * sizeof(mpls_label_t));
|
||||
extra->num_labels = num_labels;
|
||||
}
|
||||
if (!(afi == AFI_L2VPN && safi == SAFI_EVPN))
|
||||
bgp_set_valid_label(&extra->label[0]);
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user