summaryrefslogtreecommitdiffstats
path: root/ripngd/ripng_zebra.c
diff options
context:
space:
mode:
Diffstat (limited to 'ripngd/ripng_zebra.c')
-rw-r--r--ripngd/ripng_zebra.c4
1 files changed, 3 insertions, 1 deletions
diff --git a/ripngd/ripng_zebra.c b/ripngd/ripng_zebra.c
index e02b0989..72216164 100644
--- a/ripngd/ripng_zebra.c
+++ b/ripngd/ripng_zebra.c
@@ -134,6 +134,7 @@ ripng_zebra_read_ipv6 (int command, struct zclient *zclient,
unsigned long ifindex;
struct in6_addr nexthop;
struct prefix_ipv6 p;
+ unsigned char plength = 0;
s = zclient->ibuf;
ifindex = 0;
@@ -147,7 +148,8 @@ ripng_zebra_read_ipv6 (int command, struct zclient *zclient,
/* IPv6 prefix. */
memset (&p, 0, sizeof (struct prefix_ipv6));
p.family = AF_INET6;
- p.prefixlen = MIN(IPV6_MAX_PREFIXLEN, stream_getc (s));
+ plength = stream_getc (s);
+ p.prefixlen = MIN(IPV6_MAX_PREFIXLEN, plength);
stream_get (&p.prefix, s, PSIZE (p.prefixlen));
/* Nexthop, ifindex, distance, metric. */