From: David Lamparter Date: Tue, 27 Nov 2012 01:10:24 +0000 (+0000) Subject: isisd: do not add >63 IP addresses to hello X-Git-Tag: frr-2.0-rc1~1737 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=91d799e8cdd24ad3c195ed9d11882aacc91cc2ea;p=matthieu%2Ffrr.git isisd: do not add >63 IP addresses to hello RFC1195 s4.2 "Multiple IP Addresses per Interface" explicitly forbids us from adding multiple tuples of IP addresses, putting a hard cutoff at 63 IP addresses. * isisd/isis_tlv.c: cut off (and return success) at 63 addrs. Signed-off-by: David Lamparter Tested-by: Martin Winter --- diff --git a/isisd/isis_tlv.c b/isisd/isis_tlv.c index f3b2c338f5..ed3e0e81c3 100644 --- a/isisd/isis_tlv.c +++ b/isisd/isis_tlv.c @@ -932,10 +932,9 @@ tlv_add_ip_addrs (struct list *ip_addrs, struct stream *stream) { if (pos - value + IPV4_MAX_BYTELEN > 255) { - retval = add_tlv (IPV4_ADDR, pos - value, value, stream); - if (retval != ISIS_OK) - return retval; - pos = value; + /* RFC 1195 s4.2: only one tuple of 63 allowed. */ + zlog_warn ("tlv_add_ip_addrs(): cutting off at 63 IP addresses"); + break; } *(u_int32_t *) pos = ipv4->prefix.s_addr; pos += IPV4_MAX_BYTELEN;