diff options
| author | Mark Stapp <mjs@voltanet.io> | 2019-05-31 16:20:38 -0400 |
|---|---|---|
| committer | GitHub <noreply@github.com> | 2019-05-31 16:20:38 -0400 |
| commit | 32e4ce5fd522000e285dcda2da1038a4f49d731c (patch) | |
| tree | aca3c69450935a0528bb6618f6322a35292b452e /zebra/zapi_msg.c | |
| parent | ce231fbc872650f5ecd2415b99df259fa2f81377 (diff) | |
| parent | f3f45626125b117b4dc25498fced056da41bb493 (diff) | |
Merge pull request #4435 from donaldsharp/zclient_buffer_sizing
lib, zebra: Ensure route encoding has enough space
Diffstat (limited to 'zebra/zapi_msg.c')
| -rw-r--r-- | zebra/zapi_msg.c | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/zebra/zapi_msg.c b/zebra/zapi_msg.c index 94bfa34b38..49e43f4942 100644 --- a/zebra/zapi_msg.c +++ b/zebra/zapi_msg.c @@ -524,6 +524,8 @@ int zsend_redistribute_route(int cmd, struct zserv *client, struct nexthop *nexthop; int count = 0; afi_t afi; + size_t stream_size = + MAX(ZEBRA_MAX_PACKET_SIZ, sizeof(struct zapi_route)); memset(&api, 0, sizeof(api)); api.vrf_id = re->vrf_id; @@ -605,7 +607,7 @@ int zsend_redistribute_route(int cmd, struct zserv *client, SET_FLAG(api.message, ZAPI_MESSAGE_MTU); api.mtu = re->mtu; - struct stream *s = stream_new(ZEBRA_MAX_PACKET_SIZ); + struct stream *s = stream_new(stream_size); /* Encode route and send. */ if (zapi_route_encode(cmd, s, &api) < 0) { |
