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

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