Skip to content

Commit 473471c

Browse files
committed
8369838: Likely invalid assert or function call in jimage.cpp
Reviewed-by: dholmes
1 parent a3b1aff commit 473471c

File tree

2 files changed

+19
-20
lines changed

2 files changed

+19
-20
lines changed

src/hotspot/share/classfile/classLoader.cpp

Lines changed: 18 additions & 19 deletions
Original file line numberDiff line numberDiff line change
@@ -412,31 +412,30 @@ ClassFileStream* ClassPathImageEntry::open_stream(JavaThread* current, const cha
412412
//
413413
ClassFileStream* ClassPathImageEntry::open_stream_for_loader(JavaThread* current, const char* name, ClassLoaderData* loader_data) {
414414
jlong size;
415-
JImageLocationRef location = (*JImageFindResource)(jimage_non_null(), "", get_jimage_version_string(), name, &size);
415+
JImageLocationRef location = 0;
416416

417-
if (location == 0) {
418-
TempNewSymbol class_name = SymbolTable::new_symbol(name);
419-
TempNewSymbol pkg_name = ClassLoader::package_from_class_name(class_name);
417+
TempNewSymbol class_name = SymbolTable::new_symbol(name);
418+
TempNewSymbol pkg_name = ClassLoader::package_from_class_name(class_name);
420419

421-
if (pkg_name != nullptr) {
422-
if (!Universe::is_module_initialized()) {
423-
location = (*JImageFindResource)(jimage_non_null(), JAVA_BASE_NAME, get_jimage_version_string(), name, &size);
424-
} else {
425-
PackageEntry* package_entry = ClassLoader::get_package_entry(pkg_name, loader_data);
426-
if (package_entry != nullptr) {
427-
ResourceMark rm(current);
428-
// Get the module name
429-
ModuleEntry* module = package_entry->module();
430-
assert(module != nullptr, "Boot classLoader package missing module");
431-
assert(module->is_named(), "Boot classLoader package is in unnamed module");
432-
const char* module_name = module->name()->as_C_string();
433-
if (module_name != nullptr) {
434-
location = (*JImageFindResource)(jimage_non_null(), module_name, get_jimage_version_string(), name, &size);
435-
}
420+
if (pkg_name != nullptr) {
421+
if (!Universe::is_module_initialized()) {
422+
location = (*JImageFindResource)(jimage_non_null(), JAVA_BASE_NAME, get_jimage_version_string(), name, &size);
423+
} else {
424+
PackageEntry* package_entry = ClassLoader::get_package_entry(pkg_name, loader_data);
425+
if (package_entry != nullptr) {
426+
ResourceMark rm(current);
427+
// Get the module name
428+
ModuleEntry* module = package_entry->module();
429+
assert(module != nullptr, "Boot classLoader package missing module");
430+
assert(module->is_named(), "Boot classLoader package is in unnamed module");
431+
const char* module_name = module->name()->as_C_string();
432+
if (module_name != nullptr) {
433+
location = (*JImageFindResource)(jimage_non_null(), module_name, get_jimage_version_string(), name, &size);
436434
}
437435
}
438436
}
439437
}
438+
440439
if (location != 0) {
441440
if (UsePerfData) {
442441
ClassLoader::perf_sys_classfile_bytes_read()->inc(size);

src/java.base/share/native/libjimage/jimage.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -110,7 +110,7 @@ JIMAGE_FindResource(JImageFile* image,
110110
size_t nameLen = strlen(name);
111111
size_t index;
112112

113-
// TBD: assert(moduleNameLen > 0 && "module name must be non-empty");
113+
assert(moduleNameLen > 0 && "module name must be non-empty");
114114
assert(nameLen > 0 && "name must non-empty");
115115

116116
// If the concatenated string is too long for the buffer, return not found

0 commit comments

Comments
 (0)