< prev index next >

src/share/vm/runtime/arguments.cpp

Print this page
rev 8113 : 8076475: Misuses of strncpy/strncat
Summary: Various small fixes around strncpy and strncat
Reviewed-by: dsamersoff

*** 2703,2713 **** char* name = strncpy(NEW_C_HEAP_ARRAY(char, len + 1, mtInternal), tail, len); name[len] = '\0'; char *options = NULL; if(pos != NULL) { ! options = strcpy(NEW_C_HEAP_ARRAY(char, strlen(pos + 1) + 1, mtInternal), pos + 1); } #if !INCLUDE_JVMTI if (valid_hprof_or_jdwp_agent(name, is_absolute_path)) { jio_fprintf(defaultStream::error_stream(), "Profiling and debugging agents are not supported in this VM\n"); --- 2703,2713 ---- char* name = strncpy(NEW_C_HEAP_ARRAY(char, len + 1, mtInternal), tail, len); name[len] = '\0'; char *options = NULL; if(pos != NULL) { ! options = os::strdup_check_oom(pos + 1, mtInternal); } #if !INCLUDE_JVMTI if (valid_hprof_or_jdwp_agent(name, is_absolute_path)) { jio_fprintf(defaultStream::error_stream(), "Profiling and debugging agents are not supported in this VM\n");
*** 3294,3305 **** // skip over all the leading empty paths while (*src == separator) { src ++; } ! char* copy = AllocateHeap(strlen(src) + 1, mtInternal); ! strncpy(copy, src, strlen(src) + 1); // trim all trailing empty paths for (char* tail = copy + strlen(copy) - 1; tail >= copy && *tail == separator; tail--) { *tail = '\0'; } --- 3294,3304 ---- // skip over all the leading empty paths while (*src == separator) { src ++; } ! char* copy = os::strdup_check_oom(src, mtInternal); // trim all trailing empty paths for (char* tail = copy + strlen(copy) - 1; tail >= copy && *tail == separator; tail--) { *tail = '\0'; }
*** 3460,3472 **** if (!add_property("java.awt.headless=true")) { return JNI_ENOMEM; } } else { char buffer[256]; ! const char *key = "java.awt.headless="; ! strcpy(buffer, key); ! strncat(buffer, headless_env, 256 - strlen(key) - 1); if (!add_property(buffer)) { return JNI_ENOMEM; } } } --- 3459,3469 ---- if (!add_property("java.awt.headless=true")) { return JNI_ENOMEM; } } else { char buffer[256]; ! jio_snprintf(buffer, sizeof(buffer), "java.awt.headless=%s", headless_env); if (!add_property(buffer)) { return JNI_ENOMEM; } } }
*** 3625,3646 **** os::jvm_path(jvm_path, sizeof(jvm_path)); char *end = strrchr(jvm_path, *os::file_separator()); if (end != NULL) *end = '\0'; size_t jvm_path_len = strlen(jvm_path); size_t file_sep_len = strlen(os::file_separator()); ! shared_archive_path = NEW_C_HEAP_ARRAY(char, jvm_path_len + ! file_sep_len + 20, mtInternal); if (shared_archive_path != NULL) { ! strncpy(shared_archive_path, jvm_path, jvm_path_len + 1); ! strncat(shared_archive_path, os::file_separator(), file_sep_len); ! strncat(shared_archive_path, "classes.jsa", 11); } } else { ! shared_archive_path = NEW_C_HEAP_ARRAY(char, strlen(SharedArchiveFile) + 1, mtInternal); ! if (shared_archive_path != NULL) { ! strncpy(shared_archive_path, SharedArchiveFile, strlen(SharedArchiveFile) + 1); ! } } return shared_archive_path; } #ifndef PRODUCT --- 3622,3639 ---- os::jvm_path(jvm_path, sizeof(jvm_path)); char *end = strrchr(jvm_path, *os::file_separator()); if (end != NULL) *end = '\0'; size_t jvm_path_len = strlen(jvm_path); size_t file_sep_len = strlen(os::file_separator()); ! const size_t len = jvm_path_len + file_sep_len + 20; ! shared_archive_path = NEW_C_HEAP_ARRAY(char, len, mtInternal); if (shared_archive_path != NULL) { ! jio_snprintf(shared_archive_path, len, "%s%sclasses.jsa", ! jvm_path, os::file_separator()); } } else { ! shared_archive_path = os::strdup_check_oom(SharedArchiveFile, mtInternal); } return shared_archive_path; } #ifndef PRODUCT
< prev index next >