summaryrefslogtreecommitdiff
path: root/bfdd/control.c
diff options
context:
space:
mode:
Diffstat (limited to 'bfdd/control.c')
-rw-r--r--bfdd/control.c9
1 files changed, 9 insertions, 0 deletions
diff --git a/bfdd/control.c b/bfdd/control.c
index 473843fe25..01cfed8f90 100644
--- a/bfdd/control.c
+++ b/bfdd/control.c
@@ -435,6 +435,15 @@ static void control_read(struct thread *t)
return;
}
+#define FRR_BFD_MAXLEN 10 * 1024
+
+ if (plen > FRR_BFD_MAXLEN) {
+ zlog_debug("%s: client closed, invalid message length: %d",
+ __func__, bcm.bcm_length);
+ control_free(bcs);
+ return;
+ }
+
if (bcm.bcm_ver != BMV_VERSION_1) {
zlog_debug("%s: client closed due bad version: %d", __func__,
bcm.bcm_ver);