From 0793da7bcb6066cfee0e710bf99cf035e6f194a6 Mon Sep 17 00:00:00 2001 From: Erik Auerswald Date: Tue, 26 Oct 2021 20:54:14 +0200 Subject: [PATCH] replace strncat() with memcpy() MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit GCC 10 warns about the use of strncat(), but accepts the equivalent use of memcpy() without warning. ¯\_(ツ)_/¯ --- ssocr.c | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/ssocr.c b/ssocr.c index 42fd809..62bc93f 100644 --- a/ssocr.c +++ b/ssocr.c @@ -27,7 +27,7 @@ #include /* exit */ /* string manipulation */ -#include /* strdup, strlen, strncat */ +#include /* memcpy, strdup, strlen */ /* option parsing */ #include /* getopt */ @@ -59,6 +59,7 @@ static char * tmp_imgfile(unsigned int flags) unsigned char buf; ssize_t count = 0; size_t pat_suffix_len = strlen(DIR_SEP TMP_FILE_PATTERN); + size_t dir_len; /* find a suitable place (directory) for the tmp file and create pattern */ dir = getenv("TMP"); @@ -72,15 +73,15 @@ static char * tmp_imgfile(unsigned int flags) if(flags & DEBUG_OUTPUT) { fprintf(stderr, "using directory %s for temporary files\n", dir); } - pattern_len = strlen(dir) + pat_suffix_len + 1; + dir_len = strlen(dir); + pattern_len = dir_len + pat_suffix_len + 1; name = calloc(pattern_len, sizeof(char)); if(!name) { perror(PROG ": could not allocate memory for name of temporary file"); exit(99); } - name = strncat(name, dir, pattern_len - strlen(name) - 1); - name = strncat(name, DIR_SEP TMP_FILE_PATTERN, - pattern_len - strlen(name) - 1); + memcpy(name, dir, dir_len); + memcpy(name + dir_len, DIR_SEP TMP_FILE_PATTERN, pat_suffix_len); if(flags & DEBUG_OUTPUT) fprintf(stderr, "pattern for temporary file is %s\n", name);