summaryrefslogtreecommitdiff
path: root/babeld/babel_zebra.c
diff options
context:
space:
mode:
authorRenato Westphal <renato@opensourcerouting.org>2017-08-19 14:12:20 -0300
committerRenato Westphal <renato@opensourcerouting.org>2017-08-23 17:45:17 -0300
commite959008b1ef36acc572d41555f7df2d3e7f9a0cf (patch)
tree2a7965329514855682fe6159e5922935ba805892 /babeld/babel_zebra.c
parentf38efb809d91605b3b29cf9eb226825d28f680af (diff)
babeld/eigrpd/ldpd/nhrpd: add prefix length sanity checks
Pulled from d917882. Signed-off-by: Renato Westphal <renato@opensourcerouting.org>
Diffstat (limited to 'babeld/babel_zebra.c')
-rw-r--r--babeld/babel_zebra.c6
1 files changed, 3 insertions, 3 deletions
diff --git a/babeld/babel_zebra.c b/babeld/babel_zebra.c
index a1d3a9e8cc..2b998940d7 100644
--- a/babeld/babel_zebra.c
+++ b/babeld/babel_zebra.c
@@ -79,7 +79,7 @@ babel_zebra_read_ipv6 (int command, struct zclient *zclient,
/* IPv6 prefix. */
prefix.family = AF_INET6;
- prefix.prefixlen = stream_getc (s);
+ prefix.prefixlen = MIN (IPV6_MAX_PREFIXLEN, stream_getc (s));
stream_get (&prefix.prefix, s, PSIZE (prefix.prefixlen));
memset(&src_p, 0, sizeof(src_p));
@@ -140,9 +140,9 @@ babel_zebra_read_ipv4 (int command, struct zclient *zclient,
api.flags = stream_getl (s);
api.message = stream_getc (s);
- /* IPv6 prefix. */
+ /* IPv4 prefix. */
prefix.family = AF_INET;
- prefix.prefixlen = stream_getc (s);
+ prefix.prefixlen = MIN (IPV4_MAX_PREFIXLEN, stream_getc (s));
stream_get (&prefix.prefix, s, PSIZE (prefix.prefixlen));
/* Nexthop, ifindex, distance, metric. */