mirror of
https://git.proxmox.com/git/mirror_frr
synced 2025-08-09 22:03:12 +00:00
Merge pull request #5646 from Spantik/bgp_unalign
bgpd: fix unaligned access to addpath id
This commit is contained in:
commit
11387d7c79
@ -5100,7 +5100,8 @@ int bgp_nlri_parse_evpn(struct peer *peer, struct attr *attr,
|
|||||||
if (pnt + BGP_ADDPATH_ID_LEN > lim)
|
if (pnt + BGP_ADDPATH_ID_LEN > lim)
|
||||||
return BGP_NLRI_PARSE_ERROR_PACKET_OVERFLOW;
|
return BGP_NLRI_PARSE_ERROR_PACKET_OVERFLOW;
|
||||||
|
|
||||||
addpath_id = ntohl(*((uint32_t *)pnt));
|
memcpy(&addpath_id, pnt, BGP_ADDPATH_ID_LEN);
|
||||||
|
addpath_id = ntohl(addpath_id);
|
||||||
pnt += BGP_ADDPATH_ID_LEN;
|
pnt += BGP_ADDPATH_ID_LEN;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -368,7 +368,8 @@ int bgp_nlri_parse_label(struct peer *peer, struct attr *attr,
|
|||||||
if (pnt + BGP_ADDPATH_ID_LEN > lim)
|
if (pnt + BGP_ADDPATH_ID_LEN > lim)
|
||||||
return BGP_NLRI_PARSE_ERROR_PACKET_OVERFLOW;
|
return BGP_NLRI_PARSE_ERROR_PACKET_OVERFLOW;
|
||||||
|
|
||||||
addpath_id = ntohl(*((uint32_t *)pnt));
|
memcpy(&addpath_id, pnt, BGP_ADDPATH_ID_LEN);
|
||||||
|
addpath_id = ntohl(addpath_id);
|
||||||
pnt += BGP_ADDPATH_ID_LEN;
|
pnt += BGP_ADDPATH_ID_LEN;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -142,7 +142,8 @@ int bgp_nlri_parse_vpn(struct peer *peer, struct attr *attr,
|
|||||||
if (pnt + BGP_ADDPATH_ID_LEN > lim)
|
if (pnt + BGP_ADDPATH_ID_LEN > lim)
|
||||||
return BGP_NLRI_PARSE_ERROR_PACKET_OVERFLOW;
|
return BGP_NLRI_PARSE_ERROR_PACKET_OVERFLOW;
|
||||||
|
|
||||||
addpath_id = ntohl(*((uint32_t *)pnt));
|
memcpy(&addpath_id, pnt, BGP_ADDPATH_ID_LEN);
|
||||||
|
addpath_id = ntohl(addpath_id);
|
||||||
pnt += BGP_ADDPATH_ID_LEN;
|
pnt += BGP_ADDPATH_ID_LEN;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4515,7 +4515,7 @@ int bgp_nlri_parse_ip(struct peer *peer, struct attr *attr,
|
|||||||
if (pnt + BGP_ADDPATH_ID_LEN >= lim)
|
if (pnt + BGP_ADDPATH_ID_LEN >= lim)
|
||||||
return BGP_NLRI_PARSE_ERROR_PACKET_OVERFLOW;
|
return BGP_NLRI_PARSE_ERROR_PACKET_OVERFLOW;
|
||||||
|
|
||||||
memcpy(&addpath_id, pnt, 4);
|
memcpy(&addpath_id, pnt, BGP_ADDPATH_ID_LEN);
|
||||||
addpath_id = ntohl(addpath_id);
|
addpath_id = ntohl(addpath_id);
|
||||||
pnt += BGP_ADDPATH_ID_LEN;
|
pnt += BGP_ADDPATH_ID_LEN;
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user