1.1 --- a/src/os/bsd/vm/os_bsd.cpp Mon Nov 05 19:33:44 2012 -0500 1.2 +++ b/src/os/bsd/vm/os_bsd.cpp Wed Nov 07 17:53:02 2012 -0500 1.3 @@ -1198,19 +1198,20 @@ 1.4 return os::stat(filename, &statbuf) == 0; 1.5 } 1.6 1.7 -void os::dll_build_name(char* buffer, size_t buflen, 1.8 +bool os::dll_build_name(char* buffer, size_t buflen, 1.9 const char* pname, const char* fname) { 1.10 + bool retval = false; 1.11 // Copied from libhpi 1.12 const size_t pnamelen = pname ? strlen(pname) : 0; 1.13 1.14 - // Quietly truncate on buffer overflow. Should be an error. 1.15 + // Return error on buffer overflow. 1.16 if (pnamelen + strlen(fname) + strlen(JNI_LIB_PREFIX) + strlen(JNI_LIB_SUFFIX) + 2 > buflen) { 1.17 - *buffer = '\0'; 1.18 - return; 1.19 + return retval; 1.20 } 1.21 1.22 if (pnamelen == 0) { 1.23 snprintf(buffer, buflen, JNI_LIB_PREFIX "%s" JNI_LIB_SUFFIX, fname); 1.24 + retval = true; 1.25 } else if (strchr(pname, *os::path_separator()) != NULL) { 1.26 int n; 1.27 char** pelements = split_path(pname, &n); 1.28 @@ -1222,6 +1223,7 @@ 1.29 snprintf(buffer, buflen, "%s/" JNI_LIB_PREFIX "%s" JNI_LIB_SUFFIX, 1.30 pelements[i], fname); 1.31 if (file_exists(buffer)) { 1.32 + retval = true; 1.33 break; 1.34 } 1.35 } 1.36 @@ -1236,7 +1238,9 @@ 1.37 } 1.38 } else { 1.39 snprintf(buffer, buflen, "%s/" JNI_LIB_PREFIX "%s" JNI_LIB_SUFFIX, pname, fname); 1.40 + retval = true; 1.41 } 1.42 + return retval; 1.43 } 1.44 1.45 const char* os::get_current_directory(char *buf, int buflen) {