From: Donald Sharp Date: Fri, 3 Mar 2017 15:24:15 +0000 (-0500) Subject: bgpd: Only send data if we have something to send X-Git-Tag: frr-3.0-branchpoint~3^2 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=refs%2Fpull%2F254%2Fhead;p=mirror%2Ffrr.git bgpd: Only send data if we have something to send When shutting down, only send with data if we have something to send. Signed-off-by: Donald Sharp --- diff --git a/bgpd/bgpd.c b/bgpd/bgpd.c index 745b86c4ee..095f0fce6f 100644 --- a/bgpd/bgpd.c +++ b/bgpd/bgpd.c @@ -3825,14 +3825,20 @@ peer_flag_modify_action (struct peer *peer, u_int32_t flag) if (msglen > 128) msglen = 128; - u_char msgbuf[129]; + if (msglen) + { + u_char msgbuf[129]; - msgbuf[0] = msglen; - memcpy(msgbuf + 1, msg, msglen); + msgbuf[0] = msglen; + memcpy(msgbuf + 1, msg, msglen); - bgp_notify_send_with_data (peer, BGP_NOTIFY_CEASE, - BGP_NOTIFY_CEASE_ADMIN_SHUTDOWN, - msgbuf, msglen + 1); + bgp_notify_send_with_data (peer, BGP_NOTIFY_CEASE, + BGP_NOTIFY_CEASE_ADMIN_SHUTDOWN, + msgbuf, msglen + 1); + } + else + bgp_notify_send (peer, BGP_NOTIFY_CEASE, + BGP_NOTIFY_CEASE_ADMIN_SHUTDOWN); } else bgp_session_reset(peer);