- if (!(*dlopened = dlopen(libname, RTLD_LAZY | RTLD_LOCAL))) {
- dst->error(dst, NULL, PSI_WARNING, "Could not open library '%s': %s.",
- libname, dlerror());
+
+ if (PATH_MAX == psi_dlname(&lib, &len, libname)) {
+ dst->error(dst, NULL, PSI_WARNING, "Library name too long: '%s'",
+ libname);
+ return false;
+ }
+
+ if (!(*dlopened = psi_dlopen(lib))) {
+ dst->error(dst, NULL, PSI_WARNING, "Could not open library '%s': %s",
+ libname, psi_dlerror());