Merge pull request #5337 from opensourcerouting/ldpd-buffer-overflow-7.1

[7.1] ldpd: add missing sanity check in the parsing of label messages
This commit is contained in:
Sri Mohana Singamsetty 2019-11-15 15:38:45 -08:00 committed by GitHub
commit 9e37611dd0
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

View File

@ -723,6 +723,14 @@ tlv_decode_fec_elm(struct nbr *nbr, struct ldp_msg *msg, char *buf,
/* Prefix Length */
map->fec.prefix.prefixlen = buf[off];
off += sizeof(uint8_t);
if ((map->fec.prefix.af == AF_IPV4
&& map->fec.prefix.prefixlen > IPV4_MAX_PREFIXLEN)
|| (map->fec.prefix.af == AF_IPV6
&& map->fec.prefix.prefixlen > IPV6_MAX_PREFIXLEN)) {
session_shutdown(nbr, S_BAD_TLV_VAL, msg->id,
msg->type);
return (-1);
}
if (len < off + PREFIX_SIZE(map->fec.prefix.prefixlen)) {
session_shutdown(nbr, S_BAD_TLV_LEN, msg->id,
msg->type);