]> git.puffer.fish Git - matthieu/frr.git/commitdiff
zebra: Ensure that message received from mlag will fit
authorDonald Sharp <sharpd@nvidia.com>
Wed, 23 Sep 2020 17:04:20 +0000 (13:04 -0400)
committerDonald Sharp <sharpd@nvidia.com>
Wed, 23 Sep 2020 17:12:26 +0000 (13:12 -0400)
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 <sharpd@nvidia.com>
zebra/zebra_mlag_private.c

index 0f0285ed31ee297a61eec98588f6d5adc4f15484..1dae758b12a07c6c16896e4938c608543f8f2e36 100644 (file)
@@ -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;