diff -up ./lib/softoken/kbkdf.c.coverity ./lib/softoken/kbkdf.c --- ./lib/softoken/kbkdf.c.coverity 2019-12-03 15:33:43.047732312 -0800 +++ ./lib/softoken/kbkdf.c 2019-12-03 15:39:40.982578357 -0800 @@ -534,6 +534,10 @@ CK_RV kbkdf_CreateKey(CK_SESSION_HANDLE PR_ASSERT(derived_key != NULL); PR_ASSERT(derived_key->phKey != NULL); + if (slot == NULL) { + return CKR_SESSION_HANDLE_INVALID; + } + /* Create the new key object for this additional derived key. */ key = sftk_NewObject(slot); if (key == NULL) { @@ -589,7 +593,9 @@ done: sftk_FreeObject(key); /* Doesn't do anything. */ - sftk_FreeSession(session); + if (session) { + sftk_FreeSession(session); + } return ret; } diff -up ./lib/softoken/sftkhmac.c.coverity ./lib/softoken/sftkhmac.c --- ./lib/softoken/sftkhmac.c.coverity 2019-12-03 15:40:06.108848341 -0800 +++ ./lib/softoken/sftkhmac.c 2019-12-03 15:41:04.919480267 -0800 @@ -232,7 +232,9 @@ sftk_MAC_Init(sftk_MACCtx *ctx, CK_MECHA keyval->attrib.ulValueLen, isFIPS); done: - sftk_FreeAttribute(keyval); + if (keyval) { + sftk_FreeAttribute(keyval); + } return ret; }