From 7336ccbf0d1f73a30bcd68c2eeecae8012e19ead Mon Sep 17 00:00:00 2001 From: Quentin Young Date: Mon, 14 Oct 2019 16:09:36 +0000 Subject: [PATCH] bgpd: move assert out of error case bgp_process_packets has an assert to make sure an appropriate amount of working space in the input buffer has been freed up for future reads. However, this assert shouldn't be made when we have encountered an error that's going to tear down the session, because in this case we may not be able to process the full contents of the input buffer. Signed-off-by: Quentin Young --- bgpd/bgp_io.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/bgpd/bgp_io.c b/bgpd/bgp_io.c index c2d06a4b5a..c8b7e5155f 100644 --- a/bgpd/bgp_io.c +++ b/bgpd/bgp_io.c @@ -242,13 +242,13 @@ static int bgp_process_reads(struct thread *thread) break; } - assert(ringbuf_space(peer->ibuf_work) >= BGP_MAX_PACKET_SIZE); - /* handle invalid header */ if (fatal) { /* wipe buffer just in case someone screwed up */ ringbuf_wipe(peer->ibuf_work); } else { + assert(ringbuf_space(peer->ibuf_work) >= BGP_MAX_PACKET_SIZE); + thread_add_read(fpt->master, bgp_process_reads, peer, peer->fd, &peer->t_read); if (added_pkt) -- 2.39.5