diff a/src/hotspot/share/runtime/os.cpp b/src/hotspot/share/runtime/os.cpp --- a/src/hotspot/share/runtime/os.cpp +++ b/src/hotspot/share/runtime/os.cpp @@ -295,11 +295,11 @@ bool os::dll_locate_lib(char *buffer, size_t buflen, const char* pname, const char* fname) { bool retval = false; size_t fullfnamelen = strlen(JNI_LIB_PREFIX) + strlen(fname) + strlen(JNI_LIB_SUFFIX); - char* fullfname = (char*)NEW_C_HEAP_ARRAY(char, fullfnamelen + 1, mtInternal); + char* fullfname = NEW_C_HEAP_ARRAY(char, fullfnamelen + 1, mtInternal); if (dll_build_name(fullfname, fullfnamelen + 1, fname)) { const size_t pnamelen = pname ? strlen(pname) : 0; if (pnamelen == 0) { // If no path given, use current working directory. @@ -1333,11 +1333,11 @@ *elements = (size_t)0; if (path == NULL || strlen(path) == 0 || file_name_length == (size_t)NULL) { return NULL; } const char psepchar = *os::path_separator(); - char* inpath = (char*)NEW_C_HEAP_ARRAY(char, strlen(path) + 1, mtInternal); + char* inpath = NEW_C_HEAP_ARRAY(char, strlen(path) + 1, mtInternal); if (inpath == NULL) { return NULL; } strcpy(inpath, path); size_t count = 1; @@ -1346,11 +1346,12 @@ while (p != NULL) { count++; p++; p = strchr(p, psepchar); } - char** opath = (char**) NEW_C_HEAP_ARRAY(char*, count, mtInternal); + + char** opath = NEW_C_HEAP_ARRAY(char*, count, mtInternal); // do the actual splitting p = inpath; for (size_t i = 0 ; i < count ; i++) { size_t len = strcspn(p, os::path_separator()); @@ -1360,11 +1361,12 @@ vm_exit_during_initialization("The VM tried to use a path that exceeds the maximum path length for " "this system. Review path-containing parameters and properties, such as " "sun.boot.library.path, to identify potential sources for this path."); } // allocate the string and add terminator storage - char* s = (char*)NEW_C_HEAP_ARRAY_RETURN_NULL(char, len + 1, mtInternal); + char* s = NEW_C_HEAP_ARRAY_RETURN_NULL(char, len + 1, mtInternal); + if (s == NULL) { // release allocated storage before returning null free_array_of_char_arrays(opath, i++); return NULL; }