summaryrefslogtreecommitdiff
path: root/p11-kit/virtual.c
diff options
context:
space:
mode:
Diffstat (limited to 'p11-kit/virtual.c')
-rw-r--r--p11-kit/virtual.c27
1 files changed, 5 insertions, 22 deletions
diff --git a/p11-kit/virtual.c b/p11-kit/virtual.c
index b066b4b..a2853bb 100644
--- a/p11-kit/virtual.c
+++ b/p11-kit/virtual.c
@@ -88,7 +88,6 @@ typedef struct {
int fixed_index;
} Wrapper;
-static p11_mutex_t fixed_mutex;
static CK_FUNCTION_LIST *fixed_closures[P11_VIRTUAL_MAX_FIXED];
static Wrapper *create_fixed_wrapper (p11_virtual *virt,
@@ -101,23 +100,6 @@ static void
p11_virtual_unwrap_fixed
(CK_FUNCTION_LIST_PTR module);
-void
-p11_virtual_fixed_init (void)
-{
- p11_lock ();
- p11_mutex_init (&fixed_mutex);
- memset (fixed_closures, 0, sizeof (fixed_closures));
- p11_unlock ();
-}
-
-void
-p11_virtual_fixed_uninit (void)
-{
- p11_lock ();
- p11_mutex_uninit (&fixed_mutex);
- p11_unlock ();
-}
-
static CK_RV
short_C_GetFunctionStatus (CK_SESSION_HANDLE handle)
{
@@ -2860,6 +2842,7 @@ p11_virtual_wrap (p11_virtual *virt,
wrapper->destroyer = destroyer;
wrapper->bound.version.major = CRYPTOKI_VERSION_MAJOR;
wrapper->bound.version.minor = CRYPTOKI_VERSION_MINOR;
+ wrapper->fixed_index = -1;
if (!init_wrapper_funcs (wrapper))
return p11_virtual_wrap_fixed (virt, destroyer);
@@ -3266,7 +3249,7 @@ p11_virtual_wrap_fixed (p11_virtual *virt,
CK_FUNCTION_LIST *result = NULL;
size_t i;
- p11_mutex_lock (&fixed_mutex);
+ p11_mutex_lock (&p11_virtual_mutex);
for (i = 0; i < P11_VIRTUAL_MAX_FIXED; i++) {
if (fixed_closures[i] == NULL) {
Wrapper *wrapper;
@@ -3276,7 +3259,7 @@ p11_virtual_wrap_fixed (p11_virtual *virt,
break;
}
}
- p11_mutex_unlock (&fixed_mutex);
+ p11_mutex_unlock (&p11_virtual_mutex);
return result;
}
@@ -3286,14 +3269,14 @@ p11_virtual_unwrap_fixed (CK_FUNCTION_LIST_PTR module)
{
size_t i;
- p11_mutex_lock (&fixed_mutex);
+ p11_mutex_lock (&p11_virtual_mutex);
for (i = 0; i < P11_VIRTUAL_MAX_FIXED; i++) {
if (fixed_closures[i] == module) {
fixed_closures[i] = NULL;
break;
}
}
- p11_mutex_unlock (&fixed_mutex);
+ p11_mutex_unlock (&p11_virtual_mutex);
}
static bool