From: Yann Collet Date: Thu, 11 Oct 2018 00:06:25 +0000 (-0700) Subject: fixed minor gcc warning X-Git-Tag: v1.3.7~4^2 X-Git-Url: http://git.ipfire.org/cgi-bin/gitweb.cgi?a=commitdiff_plain;h=refs%2Fpull%2F1366%2Fhead;p=thirdparty%2Fzstd.git fixed minor gcc warning gcc-8 on Linux doesn't like usage of strncat : `warning: ‘strncat’ output truncated before terminating nul copying as many bytes from a string as its length`. Not sure what was wrong, it might be a false positive, but the logic is simple enough to replaced by a simple `memcpy()`, thus avoiding the shenanigans of null-terminated strings. --- diff --git a/programs/fileio.c b/programs/fileio.c index 7cbaab7da..c24f4defb 100644 --- a/programs/fileio.c +++ b/programs/fileio.c @@ -1219,7 +1219,8 @@ FIO_determineCompressedName(const char* srcFileName, const char* suffix) size_t const sfnSize = strlen(srcFileName); size_t const suffixSize = strlen(suffix); - if (dfnbCapacity <= sfnSize+suffixSize+1) { /* resize name buffer */ + if (dfnbCapacity <= sfnSize+suffixSize+1) { + /* resize buffer for dstName */ free(dstFileNameBuffer); dfnbCapacity = sfnSize + suffixSize + 30; dstFileNameBuffer = (char*)malloc(dfnbCapacity); @@ -1227,8 +1228,8 @@ FIO_determineCompressedName(const char* srcFileName, const char* suffix) EXM_THROW(30, "zstd: %s", strerror(errno)); } } assert(dstFileNameBuffer != NULL); - strncpy(dstFileNameBuffer, srcFileName, sfnSize+1 /* Include null */); - strncat(dstFileNameBuffer, suffix, suffixSize); + memcpy(dstFileNameBuffer, srcFileName, sfnSize); + memcpy(dstFileNameBuffer+sfnSize, suffix, suffixSize+1 /* Include terminating null */); return dstFileNameBuffer; }