]> granicus.if.org Git - icu/commitdiff
ICU-21588 Fix strncpy warning
authorFrank Tang <ftang@chromium.org>
Tue, 4 May 2021 01:24:40 +0000 (18:24 -0700)
committerFrank Yung-Fong Tang <ftang@google.com>
Wed, 5 May 2021 19:07:07 +0000 (12:07 -0700)
icu4c/source/tools/genrb/reslist.cpp

index 389ad19b38b88fa9047d36918fba6fdbce43cda9..b9e0d7d8c438e30e84caa6848afe78caeaafd4c6 100644 (file)
@@ -954,11 +954,7 @@ void SRBRoot::write(const char *outputDir, const char *outputPkg,
     if (writtenFilename) {
        int32_t off = 0, len = 0;
        if (outputDir) {
-           len = (int32_t)uprv_strlen(outputDir);
-           if (len > writtenFilenameLen) {
-               len = writtenFilenameLen;
-           }
-           uprv_strncpy(writtenFilename, outputDir, len);
+           uprv_strncpy(writtenFilename, outputDir, writtenFilenameLen);
        }
        if (writtenFilenameLen -= len) {
            off += len;
@@ -977,14 +973,10 @@ void SRBRoot::write(const char *outputDir, const char *outputPkg,
                if (len > writtenFilenameLen) {
                    len = writtenFilenameLen;
                }
-               uprv_strncpy(writtenFilename + off, fLocale, len);
+               uprv_strncpy(writtenFilename + off, fLocale, writtenFilenameLen - off);
                if (writtenFilenameLen -= len) {
                    off += len;
-                   len = 5;
-                   if (len > writtenFilenameLen) {
-                       len = writtenFilenameLen;
-                   }
-                   uprv_strncpy(writtenFilename +  off, ".res", len);
+                   uprv_strncpy(writtenFilename +  off, ".res", writtenFilenameLen - off);
                }
            }
        }