ddf7d0
# HG changeset patch
ddf7d0
# User Daiki Ueno <dueno@redhat.com>
ddf7d0
# Date 1557150127 -7200
ddf7d0
#      Mon May 06 15:42:07 2019 +0200
ddf7d0
# Node ID 438ac983bda9ec7944990d22a37877e9111caa90
ddf7d0
# Parent  b018f3e84d87cce99a1fd81feeecb31123058687
ddf7d0
pk11slot: reference module from slot for finalization
ddf7d0
ddf7d0
diff --git a/lib/pk11wrap/pk11slot.c b/lib/pk11wrap/pk11slot.c
ddf7d0
--- a/lib/pk11wrap/pk11slot.c
ddf7d0
+++ b/lib/pk11wrap/pk11slot.c
ddf7d0
@@ -1439,6 +1439,11 @@ PK11_InitSlot(SECMODModule *mod, CK_SLOT
ddf7d0
     slot->slotID = slotID;
ddf7d0
     slot->isThreadSafe = mod->isThreadSafe;
ddf7d0
     slot->hasRSAInfo = PR_FALSE;
ddf7d0
+    slot->module = mod; /* NOTE: we don't make a reference here because
ddf7d0
+                         * modules have references to their slots. This
ddf7d0
+                         * works because modules keep implicit references
ddf7d0
+                         * from their slots, and won't unload and disappear
ddf7d0
+                         * until all their slots have been freed */
ddf7d0
 
ddf7d0
     if (PK11_GETTAB(slot)->C_GetSlotInfo(slotID, &slotInfo) != CKR_OK) {
ddf7d0
         slot->disabled = PR_TRUE;
ddf7d0
@@ -1448,11 +1453,6 @@ PK11_InitSlot(SECMODModule *mod, CK_SLOT
ddf7d0
 
ddf7d0
     /* test to make sure claimed mechanism work */
ddf7d0
     slot->needTest = mod->internal ? PR_FALSE : PR_TRUE;
ddf7d0
-    slot->module = mod; /* NOTE: we don't make a reference here because
ddf7d0
-                         * modules have references to their slots. This
ddf7d0
-                         * works because modules keep implicit references
ddf7d0
-                         * from their slots, and won't unload and disappear
ddf7d0
-                         * until all their slots have been freed */
ddf7d0
     (void)PK11_MakeString(NULL, slot->slot_name,
ddf7d0
                           (char *)slotInfo.slotDescription, sizeof(slotInfo.slotDescription));
ddf7d0
     slot->isHW = (PRBool)((slotInfo.flags & CKF_HW_SLOT) == CKF_HW_SLOT);