From b5f7965155038d947f733d6aee92915c3c5d581c Mon Sep 17 00:00:00 2001 From: Donald Sharp Date: Thu, 24 Aug 2017 08:30:08 -0400 Subject: [PATCH] lib: Fix nexthop num If we assign MULTIPATH_NUM to be 256, this causes issues for us since 256 is bigger than a u_char. So let's make the api's multipath_num to be a u_int16_t and pass it around as a word. Signed-off-by: Donald Sharp --- lib/zclient.c | 4 ++-- lib/zclient.h | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/zclient.c b/lib/zclient.c index 75005d656..72fa2679b 100644 --- a/lib/zclient.c +++ b/lib/zclient.c @@ -940,7 +940,7 @@ int zapi_route_encode(u_char cmd, struct stream *s, struct zapi_route *api) api->nexthop_num = MULTIPATH_NUM; } - stream_putc(s, api->nexthop_num); + stream_putw(s, api->nexthop_num); for (i = 0; i < api->nexthop_num; i++) { api_nh = &api->nexthops[i]; @@ -1047,7 +1047,7 @@ int zapi_route_decode(struct stream *s, struct zapi_route *api) /* Nexthops. */ if (CHECK_FLAG(api->message, ZAPI_MESSAGE_NEXTHOP)) { - api->nexthop_num = stream_getc(s); + api->nexthop_num = stream_getw(s); if (api->nexthop_num > MULTIPATH_NUM) { zlog_warn("%s: invalid number of nexthops (%u)", __func__, api->nexthop_num); diff --git a/lib/zclient.h b/lib/zclient.h index bae52a441..7c4780201 100644 --- a/lib/zclient.h +++ b/lib/zclient.h @@ -242,7 +242,7 @@ struct zapi_route { struct prefix prefix; struct prefix_ipv6 src_prefix; - u_char nexthop_num; + u_int16_t nexthop_num; struct zapi_nexthop nexthops[MULTIPATH_NUM]; u_char distance; -- 2.39.5