From b3147ebe43a81f243d24b9c47785f1b5cfbae6d4 Mon Sep 17 00:00:00 2001 From: Tiiffi Date: Mon, 15 Feb 2021 04:31:07 +0200 Subject: [PATCH] Fix erroneous string length check --- mcrcon.c | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/mcrcon.c b/mcrcon.c index f681b1c..e6b8077 100644 --- a/mcrcon.c +++ b/mcrcon.c @@ -568,13 +568,13 @@ rc_packet *packet_build(int id, int cmd, char *s1) static rc_packet packet = {0, 0, 0, { 0x00 }}; // size + id + cmd + s1 + s2 NULL terminator - int s1_len = strlen(s1); - if (s1_len > DATA_BUFFSIZE) { - fprintf(stderr, "Warning: Command string too long (%d). Maximum allowed: %d.\n", s1_len, DATA_BUFFSIZE); + int len = strlen(s1); + if (len >= DATA_BUFFSIZE) { + fprintf(stderr, "Warning: Command string too long (%d). Maximum allowed: %d.\n", len, DATA_BUFFSIZE - 1); return NULL; } - packet.size = sizeof(int) * 2 + s1_len + 2; + packet.size = sizeof(int) * 2 + len + 2; packet.id = id; packet.cmd = cmd; strncpy(packet.data, s1, DATA_BUFFSIZE - 1);