src/share/vm/runtime/arguments.cpp

changeset 9920
3a3803a0c789
parent 9896
1b8c45b8216a
child 9931
fd44df5e3bc3
     1.1 --- a/src/share/vm/runtime/arguments.cpp	Mon Sep 23 20:26:18 2019 +0200
     1.2 +++ b/src/share/vm/runtime/arguments.cpp	Fri Apr 03 14:14:26 2020 +0100
     1.3 @@ -3476,8 +3476,7 @@
     1.4        src ++;
     1.5      }
     1.6  
     1.7 -    char* copy = AllocateHeap(strlen(src) + 1, mtInternal);
     1.8 -    strncpy(copy, src, strlen(src) + 1);
     1.9 +    char* copy = os::strdup(src, mtInternal);
    1.10  
    1.11      // trim all trailing empty paths
    1.12      for (char* tail = copy + strlen(copy) - 1; tail >= copy && *tail == separator; tail--) {
    1.13 @@ -3856,18 +3855,14 @@
    1.14      if (end != NULL) *end = '\0';
    1.15      size_t jvm_path_len = strlen(jvm_path);
    1.16      size_t file_sep_len = strlen(os::file_separator());
    1.17 -    shared_archive_path = NEW_C_HEAP_ARRAY(char, jvm_path_len +
    1.18 -        file_sep_len + 20, mtInternal);
    1.19 +    const size_t len = jvm_path_len + file_sep_len + 20;
    1.20 +    shared_archive_path = NEW_C_HEAP_ARRAY(char, len, mtInternal);
    1.21      if (shared_archive_path != NULL) {
    1.22 -      strncpy(shared_archive_path, jvm_path, jvm_path_len + 1);
    1.23 -      strncat(shared_archive_path, os::file_separator(), file_sep_len);
    1.24 -      strncat(shared_archive_path, "classes.jsa", 11);
    1.25 +      jio_snprintf(shared_archive_path, len, "%s%sclasses.jsa",
    1.26 +        jvm_path, os::file_separator());
    1.27      }
    1.28    } else {
    1.29 -    shared_archive_path = NEW_C_HEAP_ARRAY(char, strlen(SharedArchiveFile) + 1, mtInternal);
    1.30 -    if (shared_archive_path != NULL) {
    1.31 -      strncpy(shared_archive_path, SharedArchiveFile, strlen(SharedArchiveFile) + 1);
    1.32 -    }
    1.33 +    shared_archive_path = os::strdup(SharedArchiveFile, mtInternal);
    1.34    }
    1.35    return shared_archive_path;
    1.36  }

mercurial