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)