if (owner && parent) { pk11_CloseSession(symKey->slot, symKey->session,symKey->sessionOwner);
if (!needSession) {
PK11_SymKeyFromHandle(PK11SlotInfo *slot, PK11SymKey *parent, PK11Origin origin,    CK_MECHANISM_TYPE type, CK_OBJECT_HANDLE keyID, PRBool owner, void *wincx){    PK11SymKey *symKey;    if (keyID == CK_INVALID_HANDLE) {	return NULL;    }    symKey = pk11_CreateSymKey(slot,type,owner,wincx);    if (symKey == NULL) {	return NULL;    }    symKey->objectID = keyID;    symKey->origin = origin;    /* adopt the parent's session */    /* This is only used by SSL. What we really want here is a session     * structure with a ref count so  the session goes away only after all the     * keys do. */    if (owner && parent) {	pk11_CloseSession(symKey->slot, symKey->session,symKey->sessionOwner);	symKey->sessionOwner = PR_FALSE;	symKey->session = parent->session;	symKey->parent = PK11_ReferenceSymKey(parent);    }    return symKey;}