From: Donald Sharp Date: Wed, 23 Sep 2020 17:04:20 +0000 (-0400) Subject: zebra: Ensure that message received from mlag will fit X-Git-Tag: base_7.6~518^2~1 X-Git-Url: https://git.puffer.fish/?a=commitdiff_plain;h=7692744f2c922e1621063ff4c44b94dff05bb6a9;p=mirror%2Ffrr.git 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 --- 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;