1--- nspr/pr/src/linking/prlink.c 2+++ nspr/pr/src/linking/prlink.c 3@@ -799,7 +799,7 @@ 4 * The reason is that DARWIN's dlopen ignores the provided path 5 * and checks for the plain filename in DYLD_LIBRARY_PATH, 6 * which could load an unexpected version of a library. */ 7- if (strchr(name, PR_DIRECTORY_SEPARATOR) == NULL) { 8+ if (strchr(name, PR_DIRECTORY_SEPARATOR) == NULL || strncmp(name, "@loader_path/", 13) == 0) { 9 /* no slash, allow to load from any location */ 10 okToLoad = PR_TRUE; 11 } else { 12--- nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c 13+++ nss/lib/libpkix/pkix_pl_nss/module/pkix_pl_httpcertstore.c 14@@ -224,7 +224,11 @@ 15 static PRStatus PR_CALLBACK pkix_getDecodeFunction(void) 16 { 17 pkix_decodeFunc.smimeLib = 18+#if defined DARWIN 19+ PR_LoadLibrary("@loader_path/" SHLIB_PREFIX"smime3."SHLIB_SUFFIX); 20+#else 21 PR_LoadLibrary(SHLIB_PREFIX"smime3."SHLIB_SUFFIX); 22+#endif 23 if (pkix_decodeFunc.smimeLib == NULL) { 24 return PR_FAILURE; 25 } 26