]> granicus.if.org Git - p11-kit/commitdiff
Treat CKR_CRYPTOKI_ALREADY_INITIALIZED correctly
authorJustin King-Lacroix <justinkl@google.com>
Sat, 17 Mar 2018 02:37:24 +0000 (19:37 -0700)
committerDaiki Ueno <ueno@gnu.org>
Thu, 29 Mar 2018 12:59:11 +0000 (14:59 +0200)
In p11_kit_modules_initialize(), treat a return code
of CKR_CRYPTOKI_ALREADY_INITIALIZED as identical to
CKR_OK.

p11-kit/modules.c

index fb99e31e61786b30bb56b211d2e7074abf8c02c9..96baa44a1eb1b3662d861a41ae6b6d03876e1c0e 100644 (file)
@@ -2115,7 +2115,7 @@ p11_kit_modules_initialize (CK_FUNCTION_LIST **modules,
 
        for (i = 0, out = 0; modules[i] != NULL; i++, out++) {
                rv = modules[i]->C_Initialize (NULL);
-               if (rv != CKR_OK) {
+               if (rv != CKR_OK && rv != CKR_CRYPTOKI_ALREADY_INITIALIZED) {
                        name = p11_kit_module_get_name (modules[i]);
                        if (name == NULL)
                                name = strdup ("(unknown)");
@@ -2130,6 +2130,11 @@ p11_kit_modules_initialize (CK_FUNCTION_LIST **modules,
                        out--;
                        free (name);
                } else {
+                       if (rv == CKR_CRYPTOKI_ALREADY_INITIALIZED) {
+                               name = p11_kit_module_get_name (modules[i]);
+                               p11_message ("%s: module was already initialized",
+                                            name ? name : "(unknown)");
+                       }
                        modules[out] = modules[i];
                }
        }