From 81e0eb009a11639a95b2a62b0d6ff80ac703ef6c Mon Sep 17 00:00:00 2001 From: welcor <357770+welcor@users.noreply.github.com> Date: Fri, 21 Jun 2024 14:07:20 +0200 Subject: [PATCH] remove undefined behaviour --- src/handler.c | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/src/handler.c b/src/handler.c index 87269bb..9aeb664 100644 --- a/src/handler.c +++ b/src/handler.c @@ -592,14 +592,16 @@ int get_number(char **name) { int i; char *ppos; - char number[MAX_INPUT_LENGTH]; + char number[MAX_INPUT_LENGTH], tmp[MAX_INPUT_LENGTH]; *number = '\0'; if ((ppos = strchr(*name, '.')) != NULL) { *ppos++ = '\0'; strlcpy(number, *name, sizeof(number)); - strcpy(*name, ppos); /* strcpy: OK (always smaller) */ + // avoid overlapping strings in strcpy which is undefined behaviour + strcpy(tmp, ppos); /* strcpy: OK (always smaller) */ + strcpy(*name, tmp); /* strcpy: OK (always smaller) */ for (i = 0; *(number + i); i++) if (!isdigit(*(number + i)))