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 <sharpd@cumulusnetworks.com>
This commit is contained in:
Donald Sharp 2017-08-24 08:30:08 -04:00
parent 98ca91e95a
commit b5f7965155
2 changed files with 3 additions and 3 deletions

View File

@ -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);

View File

@ -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;