diff options
| author | Quentin Young <qlyoung@cumulusnetworks.com> | 2019-10-14 16:09:36 +0000 |
|---|---|---|
| committer | Quentin Young <qlyoung@cumulusnetworks.com> | 2019-10-14 18:41:07 +0000 |
| commit | 421a7dfc934f43176174ca4553b0fb2bea35b23b (patch) | |
| tree | ea41a95b5499d03ec7d018b12a916d503a33919b | |
| parent | 1f885f315a2b8e98b4746575b216241117cfccc2 (diff) | |
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 <qlyoung@cumulusnetworks.com>
| -rw-r--r-- | bgpd/bgp_io.c | 4 |
1 files 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) |
