]> git.ipfire.org Git - thirdparty/zstd.git/commitdiff
fixed minor gcc warning 1366/head
authorYann Collet <cyan@fb.com>
Thu, 11 Oct 2018 00:06:25 +0000 (17:06 -0700)
committerYann Collet <cyan@fb.com>
Thu, 11 Oct 2018 00:06:25 +0000 (17:06 -0700)
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.

programs/fileio.c

index 7cbaab7da196de1dac150006999bf134cc2f059a..c24f4defbb9ad93a9c262c6abaa059f12264a339 100644 (file)
@@ -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;
 }