Blame SOURCES/jss-fix-PK11Store-getEncryptedPrivateKeyInfo-segfault.patch

50aabd
# HG changeset patch
50aabd
# User Fraser Tweedale<ftweedale@redhat.com>
50aabd
# Date 1505175862 25200
50aabd
#      Mon Sep 11 17:24:22 2017 -0700
50aabd
# Node ID 3e9a5ae2149d04877dc19b117a8917c22854f8eb
50aabd
# Parent  87dca07f7529463398734d1279bcfd7023a43d4c
50aabd
Bug 1371147 PK11Store.getEncryptedPrivateKeyInfo() segfault if export fails -
50aabd
patch jss-ftweedal-0011-Don-t-crash-if-PK11_ExportEncryptedPrivKeyInfo-retur.patch
50aabd
Subject: Don't crash if PK11_ExportEncryptedPrivKeyInfo returns NULL
50aabd
From: Fraser Tweedale <ftweedal@redhat.com>
50aabd
Content-Type: text/plain
50aabd
found patch at byte 239
50aabd
message:
50aabd
Don't crash if PK11_ExportEncryptedPrivKeyInfo returns NULL
50aabd
PK11_ExportEncryptedPrivKeyInfo returning NULL is not being handled
50aabd
properly, causing segfault.  Detect this condition and raise a
50aabd
TokenException instead.
50aabd
50aabd
cfu for ftweedal
50aabd
50aabd
diff -r 87dca07f7529 -r 3e9a5ae2149d org/mozilla/jss/pkcs11/PK11Store.c
50aabd
--- a/org/mozilla/jss/pkcs11/PK11Store.c	Fri Sep 08 11:56:04 2017 -0700
50aabd
+++ b/org/mozilla/jss/pkcs11/PK11Store.c	Mon Sep 11 17:24:22 2017 -0700
50aabd
@@ -581,6 +581,11 @@
50aabd
     // export the epki
50aabd
     epki = PK11_ExportEncryptedPrivKeyInfo(
50aabd
         slot, algTag, pwItem, privk, iterations, NULL /*wincx*/);
50aabd
+    if (epki == NULL) {
50aabd
+        JSS_throwMsgPrErr(
50aabd
+            env, TOKEN_EXCEPTION, "Failed to export EncryptedPrivateKeyInfo");
50aabd
+        goto finish;
50aabd
+    }
50aabd
 
50aabd
     // DER-encode the epki
50aabd
     if (SEC_ASN1EncodeItem(NULL, &epkiItem, epki,