]> git.proxmox.com Git - mirror_edk2.git/blobdiff - CryptoPkg/Library/BaseCryptLib/Pk/CryptPkcs7.c
Fix CrytoPkg issue in GCC X64 tip.
[mirror_edk2.git] / CryptoPkg / Library / BaseCryptLib / Pk / CryptPkcs7.c
index 47bab1004b7d053d69178e4d1363d03fc72a827d..83f0dfcd5a6de16e39c183b35deb5ee862c7efd2 100644 (file)
@@ -190,6 +190,7 @@ Pkcs7Sign (
   //\r
   Key = EVP_PKEY_new ();\r
   if (Key == NULL) {\r
+    Status = FALSE;\r
     goto _Exit;\r
   }\r
   Key->save_type = EVP_PKEY_RSA;\r
@@ -213,6 +214,7 @@ Pkcs7Sign (
             PKCS7_BINARY | PKCS7_NOATTR | PKCS7_DETACHED\r
             );\r
   if (Pkcs7 == NULL) {\r
+    Status = FALSE;\r
     goto _Exit;\r
   }\r
 \r
@@ -221,9 +223,16 @@ Pkcs7Sign (
   //\r
   P7DataSize = i2d_PKCS7 (Pkcs7, NULL);\r
   if (P7DataSize <= 19) {\r
+    Status = FALSE;\r
     goto _Exit;\r
   }\r
+\r
   P7Data     = OPENSSL_malloc (P7DataSize);\r
+  if (P7Data == NULL) {\r
+    Status = FALSE;\r
+    goto _Exit;\r
+  }\r
+\r
   Tmp        = P7Data;\r
   P7DataSize = i2d_PKCS7 (Pkcs7, (unsigned char **) &Tmp);\r
 \r
@@ -233,6 +242,12 @@ Pkcs7Sign (
   //\r
   *SignedDataSize = P7DataSize - 19;\r
   *SignedData     = OPENSSL_malloc (*SignedDataSize);\r
+  if (*SignedData == NULL) {\r
+    Status = FALSE;\r
+    OPENSSL_free (P7Data);\r
+    goto _Exit;\r
+  }\r
+\r
   CopyMem (*SignedData, P7Data + 19, *SignedDataSize);\r
   \r
   OPENSSL_free (P7Data);\r