summaryrefslogtreecommitdiff
path: root/p11-kit
diff options
context:
space:
mode:
authorDaiki Ueno <dueno@redhat.com>2016-08-12 16:16:38 +0200
committerStef Walter <stefw@redhat.com>2016-08-22 11:57:00 +0200
commitd8f90d300eb76e04dec2caba99f78e7f8a99b215 (patch)
tree58bf327216cee1827f1d3fc6878f161bc1f05e8d /p11-kit
parent8afd8d92771d279b38acc098c84027b2cf0dd168 (diff)
Fix leak when C_Initialize() is called from child
The test case added for bug 90289 (commit c73edd00) revealed that some of the C_Initialize() implementations do not consider the case where it is called from the parent process and then from the child process, without calling C_Finalize() in between.
Diffstat (limited to 'p11-kit')
-rw-r--r--p11-kit/modules.c2
1 files changed, 2 insertions, 0 deletions
diff --git a/p11-kit/modules.c b/p11-kit/modules.c
index f52c6e1..1ec0f1d 100644
--- a/p11-kit/modules.c
+++ b/p11-kit/modules.c
@@ -1480,6 +1480,8 @@ managed_C_Initialize (CK_X_FUNCTION_LIST *self,
else
rv = initialize_module_inlock_reentrant (managed->mod);
if (rv == CKR_OK) {
+ if (managed->sessions)
+ p11_dict_free (managed->sessions);
managed->sessions = sessions;
managed->initialized = p11_forkid;
} else {