From b39d3a4456d329e2ba6fcf7c97aa11ef8533ee76 Mon Sep 17 00:00:00 2001 From: Pascal Kuthe Date: Mon, 14 Nov 2022 13:43:42 +0100 Subject: [PATCH] fix sigfault on older c compilers --- src/frontend/inpcom.c | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/src/frontend/inpcom.c b/src/frontend/inpcom.c index 7b6ad0f89..b5cee29a7 100644 --- a/src/frontend/inpcom.c +++ b/src/frontend/inpcom.c @@ -606,18 +606,19 @@ static char *cat2strings(char *s1, char *s2, bool spa) else if (s1 == NULL || *s1 == '\0') { return copy(s2); } - size_t lges = strlen(s1) + strlen(s2) + 2; - char *nextstr; - char *strsum = TMALLOC(char, lges); + size_t l1 = strlen(s1); + size_t l2 = strlen(s2); + char *strsum = TMALLOC(char, l1 + l2 + 2); if (spa) { - nextstr = memccpy(strsum, s1, '\0', lges); - *(nextstr - 1) = ' '; - nextstr = memccpy(nextstr, s2, '\0', lges); + memcpy(strsum, s1, l1); + memcpy(strsum + l1 + 1, s2, l2); + strsum[l1] = ' '; + strsum[l1 + l2 + 1] = '\0'; } else { - nextstr = (char*)memccpy(strsum, s1, '\0', lges) - 1; - nextstr = (char*)memccpy(nextstr, s2, '\0', lges) - 1; - *nextstr = '\0'; + memcpy(strsum, s1, l1); + memcpy(strsum + l1, s2, l2); + strsum[l1 + l2] = '\0'; } return strsum; }