Blame SOURCES/0001-Resolves-rhbz-1614419-crash-in-pptx-nss-usage-under-.patch

91334d
From 59f6c408ba822147fd4b9b47d84dab537fb8554d Mon Sep 17 00:00:00 2001
91334d
From: rpmbuild <rpmbuild@fedoraproject.org>
91334d
Date: Fri, 10 Aug 2018 08:26:23 +0100
91334d
Subject: [PATCH] Resolves: rhbz#1614419 crash in pptx nss usage under fips
91334d
91334d
---
91334d
 oox/source/crypto/CryptTools.cxx | 11 ++++++++---
91334d
 1 file changed, 8 insertions(+), 3 deletions(-)
91334d
91334d
diff --git a/oox/source/crypto/CryptTools.cxx b/oox/source/crypto/CryptTools.cxx
91334d
index 4bb3ec2..5ecf7b3 100644
91334d
--- a/oox/source/crypto/CryptTools.cxx
91334d
+++ b/oox/source/crypto/CryptTools.cxx
91334d
@@ -36,9 +36,12 @@ Crypto::~Crypto()
91334d
     EVP_CIPHER_CTX_cleanup( &mContext );
91334d
 #endif
91334d
 #if USE_TLS_NSS
91334d
-    PK11_DestroyContext( mContext, PR_TRUE );
91334d
-    PK11_FreeSymKey( mSymKey );
91334d
-    SECITEM_FreeItem( mSecParam, PR_TRUE );
91334d
+    if (mContext)
91334d
+        PK11_DestroyContext(mContext, PR_TRUE);
91334d
+    if (mSymKey)
91334d
+        PK11_FreeSymKey(mSymKey);
91334d
+    if (mSecParam)
91334d
+        SECITEM_FreeItem(mSecParam, PR_TRUE);
91334d
 #endif
91334d
 }
91334d
 
91334d
@@ -103,6 +106,8 @@ void Crypto::setupContext(vector<sal_uInt8>& key, vector<sal_uInt8>& iv, CryptoT
91334d
     keyItem.len  = key.size();
91334d
 
91334d
     mSymKey = PK11_ImportSymKey( pSlot, mechanism, PK11_OriginUnwrap, CKA_ENCRYPT, &keyItem, nullptr );
91334d
+    if (!mSymKey)
91334d
+        throw css::uno::RuntimeException("NSS SymKey failure", css::uno::Reference<css::uno::XInterface>());
91334d
     mSecParam = PK11_ParamFromIV( mechanism, pIvItem );
91334d
     mContext = PK11_CreateContextBySymKey( mechanism, operation, mSymKey, mSecParam );
91334d
 }
91334d
-- 
91334d
1.8.3.1
91334d