From 7692744f2c922e1621063ff4c44b94dff05bb6a9 Mon Sep 17 00:00:00 2001 From: Donald Sharp Date: Wed, 23 Sep 2020 13:04:20 -0400 Subject: [PATCH] zebra: Ensure that message received from mlag will fit If we receive a message that is greater than our buffer size we are in a situation where both the read and write buffers are fubar'ed beyond the end. Assert when we notice this fact. Ticket: CM-31576 Signed-off-by: Donald Sharp --- zebra/zebra_mlag_private.c | 9 +++++++++ 1 file changed, 9 insertions(+) diff --git a/zebra/zebra_mlag_private.c b/zebra/zebra_mlag_private.c index 0f0285ed31..1dae758b12 100644 --- a/zebra/zebra_mlag_private.c +++ b/zebra/zebra_mlag_private.c @@ -117,6 +117,15 @@ static int zebra_mlag_read(struct thread *thread) /* This will be the actual length of the packet */ tot_len = h_msglen + ZEBRA_MLAG_LEN_SIZE; + /* + * If the buffer read we are about to do is too large + * we are really really really not double plus good + * + * I'm not sure what to do here other than to bail + * We'll need to revisit this in the future. + */ + assert(tot_len < ZEBRA_MLAG_BUF_LIMIT); + if (curr_len < tot_len) { ssize_t data_len;