8021355: REGRESSION: Five closed/java/awt/SplashScreen tests fail since 7u45 b01 on Linux, Solaris
Reviewed-by: dholmes, anthony, ahgross, erikj
--- a/jdk/src/solaris/bin/java_md_solinux.c Mon Aug 12 13:47:21 2013 -0700
+++ b/jdk/src/solaris/bin/java_md_solinux.c Wed Aug 14 10:17:57 2013 -0700
@@ -1,5 +1,5 @@
/*
- * Copyright (c) 1998, 2012, Oracle and/or its affiliates. All rights reserved.
+ * Copyright (c) 1998, 2013, Oracle and/or its affiliates. All rights reserved.
* DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
*
* This code is free software; you can redistribute it and/or modify it
@@ -958,9 +958,27 @@
void* SplashProcAddress(const char* name) {
if (!hSplashLib) {
- const char * splashLibPath;
- splashLibPath = SPLASHSCREEN_SO;
- hSplashLib = dlopen(splashLibPath, RTLD_LAZY | RTLD_GLOBAL);
+ int ret;
+ char jrePath[MAXPATHLEN];
+ char splashPath[MAXPATHLEN];
+
+ if (!GetJREPath(jrePath, sizeof(jrePath), GetArch(), JNI_FALSE)) {
+ JLI_ReportErrorMessage(JRE_ERROR1);
+ return NULL;
+ }
+ ret = JLI_Snprintf(splashPath, sizeof(splashPath), "%s/lib/%s/%s",
+ jrePath, GetArch(), SPLASHSCREEN_SO);
+
+ if (ret >= (int) sizeof(splashPath)) {
+ JLI_ReportErrorMessage(JRE_ERROR11);
+ return NULL;
+ }
+ if (ret < 0) {
+ JLI_ReportErrorMessage(JRE_ERROR13);
+ return NULL;
+ }
+ hSplashLib = dlopen(splashPath, RTLD_LAZY | RTLD_GLOBAL);
+ JLI_TraceLauncher("Info: loaded %s\n", splashPath);
}
if (hSplashLib) {
void* sym = dlsym(hSplashLib, name);