diff options
Diffstat (limited to 'usr/src/lib/pkcs11/libpkcs11/common/pkcs11Conf.c')
| -rw-r--r-- | usr/src/lib/pkcs11/libpkcs11/common/pkcs11Conf.c | 13 |
1 files changed, 7 insertions, 6 deletions
diff --git a/usr/src/lib/pkcs11/libpkcs11/common/pkcs11Conf.c b/usr/src/lib/pkcs11/libpkcs11/common/pkcs11Conf.c index d0b306c948..b2f06f7da1 100644 --- a/usr/src/lib/pkcs11/libpkcs11/common/pkcs11Conf.c +++ b/usr/src/lib/pkcs11/libpkcs11/common/pkcs11Conf.c @@ -528,13 +528,14 @@ pkcs11_slot_mapping(uentrylist_t *pplist, CK_VOID_PTR pInitArgs) } /* - * Open the provider. Use RTLD_NOW to make sure we - * will not encounter symbol referencing errors later. - * Use RTLD_GROUP to limit the provider to it's own - * symbols, which prevents it from mistakenly accessing - * the framework's C_* functions. + * Open the provider. We assume all of our plugins have + * their symbols properly defined, so the use of RTLD_NOW + * to flush out errors immediately is not necessary. + * + * Note that for proper operation, all plugins must be + * built with direct bindings enabled. */ - dldesc = dlopen(fullpath, RTLD_NOW|RTLD_GROUP); + dldesc = dlopen(fullpath, RTLD_LAZY); /* * If we failed to load it, we will just skip this |
