diff options
Diffstat (limited to 'p11-kit/rpc-server.c')
-rw-r--r-- | p11-kit/rpc-server.c | 18 |
1 files changed, 10 insertions, 8 deletions
diff --git a/p11-kit/rpc-server.c b/p11-kit/rpc-server.c index a468e7a..b8288c9 100644 --- a/p11-kit/rpc-server.c +++ b/p11-kit/rpc-server.c @@ -681,16 +681,18 @@ rpc_C_Initialize (CK_X_FUNCTION_LIST *self, assert (p11_rpc_message_is_verified (msg)); } - memset (&init_args, 0, sizeof (init_args)); - init_args.flags = CKF_OS_LOCKING_OK; + if (ret == CKR_OK) { + memset (&init_args, 0, sizeof (init_args)); + init_args.flags = CKF_OS_LOCKING_OK; - func = self->C_Initialize; - assert (func != NULL); - ret = (func) (self, &init_args); + func = self->C_Initialize; + assert (func != NULL); + ret = (func) (self, &init_args); - /* Empty response */ - if (ret == CKR_OK) - ret = call_ready (msg); + /* Empty response */ + if (ret == CKR_OK) + ret = call_ready (msg); + } p11_debug ("ret: %d", (int)ret); return ret; |