From 785b50127ecf0c440c016f85cef0c59f56894fc4 Mon Sep 17 00:00:00 2001 From: Lev Stipakov Date: Fri, 22 Sep 2023 12:50:55 +0200 Subject: [PATCH] Warn user if INFO control command is too long "INFO_PRE,..." command length is limited to 256 bytes. If the server implementation pushes command which is too long, warn the user and don't send the truncated command to a management client. Change-Id: If3c27a2a2ba24f2af0e3e3c95eea57ed420b2542 Signed-off-by: Lev Stipakov Acked-by: Frank Lichtenheld Message-Id: <20230922105055.37969-1-frank@lichtenheld.com> URL: https://www.mail-archive.com/openvpn-devel@lists.sourceforge.net/msg27062.html Signed-off-by: Gert Doering (cherry picked from commit df624fb6d63db6b2a3b0c40597cee74c61b8ab2c) --- src/openvpn/push.c | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/openvpn/push.c b/src/openvpn/push.c index d4682115c1e..19849c5a981 100644 --- a/src/openvpn/push.c +++ b/src/openvpn/push.c @@ -244,8 +244,14 @@ server_pushed_info(struct context *c, const struct buffer *buffer, * for management greeting and we don't want to confuse the client */ struct buffer out = alloc_buf_gc(256, &gc); - buf_printf(&out, ">%s:%s", "INFOMSG", m); - management_notify_generic(management, BSTR(&out)); + if (buf_printf(&out, ">%s:%s", "INFOMSG", m)) + { + management_notify_generic(management, BSTR(&out)); + } + else + { + msg(D_PUSH_ERRORS, "WARNING: Received INFO command is too long, won't notify management client."); + } gc_free(&gc); }