summaryrefslogtreecommitdiff
path: root/usr/src/cmd/cmd-crypto/cryptoadm/adm_uef.c
diff options
context:
space:
mode:
Diffstat (limited to 'usr/src/cmd/cmd-crypto/cryptoadm/adm_uef.c')
-rw-r--r--usr/src/cmd/cmd-crypto/cryptoadm/adm_uef.c7
1 files changed, 6 insertions, 1 deletions
diff --git a/usr/src/cmd/cmd-crypto/cryptoadm/adm_uef.c b/usr/src/cmd/cmd-crypto/cryptoadm/adm_uef.c
index 9e19316d72..88f3787aa4 100644
--- a/usr/src/cmd/cmd-crypto/cryptoadm/adm_uef.c
+++ b/usr/src/cmd/cmd-crypto/cryptoadm/adm_uef.c
@@ -231,7 +231,12 @@ list_mechlist_for_lib(char *libname, mechlist_t *mlist,
(void) strlcpy(libpath, libname, sizeof (libpath));
}
- /* Open the provider */
+ /*
+ * Open the provider. Use RTLD_NOW here, as a way to
+ * catch any providers with incomplete symbols that
+ * might otherwise cause problems during libpkcs11's
+ * execution.
+ */
dldesc = dlopen(libpath, RTLD_NOW);
if (dldesc == NULL) {
dl_error = dlerror();