Blame tpm2_getmanufc-fix-OSSL-build-warnings.patch

Javier Martinez Canillas 83d0ae
From e43831512dad43ec5537d30911dba5f4c36fef59 Mon Sep 17 00:00:00 2001
Javier Martinez Canillas 83d0ae
From: William Roberts <william.c.roberts@intel.com>
Javier Martinez Canillas 83d0ae
Date: Wed, 17 Oct 2018 08:27:11 -0700
Javier Martinez Canillas 83d0ae
Subject: [PATCH] tpm2_getmanufc: fix OSSL build warnings
Javier Martinez Canillas 83d0ae
MIME-Version: 1.0
Javier Martinez Canillas 83d0ae
Content-Type: text/plain; charset=UTF-8
Javier Martinez Canillas 83d0ae
Content-Transfer-Encoding: 8bit
Javier Martinez Canillas 83d0ae
Javier Martinez Canillas 83d0ae
Fix the following reported error:
Javier Martinez Canillas 83d0ae
Javier Martinez Canillas 83d0ae
In file included from tools/tpm2_getmanufec.c:42:0:
Javier Martinez Canillas 83d0ae
tools/tpm2_getmanufec.c: In function ‘Base64Encode’:
Javier Martinez Canillas 83d0ae
/home/travis/build/AndreasFuchsSIT/tpm2-tss-engine/tpm2-tools/../installdir/usr/local/include/openssl/bio.h:596:34: error: value computed is not used [-Werror=unused-value]
Javier Martinez Canillas 83d0ae
 # define BIO_flush(b)            (int)BIO_ctrl(b,BIO_CTRL_FLUSH,0,NULL)
Javier Martinez Canillas 83d0ae
                                  ^
Javier Martinez Canillas 83d0ae
tools/tpm2_getmanufec.c:290:5: note: in expansion of macro ‘BIO_flush’
Javier Martinez Canillas 83d0ae
     BIO_flush(bio);
Javier Martinez Canillas 83d0ae
     ^
Javier Martinez Canillas 83d0ae
/home/travis/build/AndreasFuchsSIT/tpm2-tss-engine/tpm2-tools/../installdir/usr/local/include/openssl/bio.h:589:34: error: value computed is not used [-Werror=unused-value]
Javier Martinez Canillas 83d0ae
 # define BIO_set_close(b,c)      (int)BIO_ctrl(b,BIO_CTRL_SET_CLOSE,(c),NULL)
Javier Martinez Canillas 83d0ae
                                  ^
Javier Martinez Canillas 83d0ae
tools/tpm2_getmanufec.c:292:5: note: in expansion of macro ‘BIO_set_close’
Javier Martinez Canillas 83d0ae
     BIO_set_close(bio, BIO_NOCLOSE);
Javier Martinez Canillas 83d0ae
     ^
Javier Martinez Canillas 83d0ae
cc1: all warnings being treated as errors
Javier Martinez Canillas 83d0ae
make: *** [tools/tpm2_getmanufec.o] Error 1
Javier Martinez Canillas 83d0ae
make: *** Waiting for unfinished jobs....
Javier Martinez Canillas 83d0ae
Javier Martinez Canillas 83d0ae
Fixes: #1200
Javier Martinez Canillas 83d0ae
Javier Martinez Canillas 83d0ae
Signed-off-by: William Roberts <william.c.roberts@intel.com>
Javier Martinez Canillas 83d0ae
---
Javier Martinez Canillas 83d0ae
 tools/tpm2_getmanufec.c | 18 ++++++++++++++----
Javier Martinez Canillas 83d0ae
 1 file changed, 14 insertions(+), 4 deletions(-)
Javier Martinez Canillas 83d0ae
Javier Martinez Canillas 83d0ae
diff --git a/tools/tpm2_getmanufec.c b/tools/tpm2_getmanufec.c
Javier Martinez Canillas 83d0ae
index 6ddf31eee5d..89702f9c78a 100644
Javier Martinez Canillas 83d0ae
--- a/tools/tpm2_getmanufec.c
Javier Martinez Canillas 83d0ae
+++ b/tools/tpm2_getmanufec.c
Javier Martinez Canillas 83d0ae
@@ -274,6 +274,7 @@ char *Base64Encode(const unsigned char* buffer)
Javier Martinez Canillas 83d0ae
 {
Javier Martinez Canillas 83d0ae
     BIO *bio, *b64;
Javier Martinez Canillas 83d0ae
     BUF_MEM *bufferPtr;
Javier Martinez Canillas 83d0ae
+    char *final_string = NULL;
Javier Martinez Canillas 83d0ae
 
Javier Martinez Canillas 83d0ae
     LOG_INFO("Calculating the Base64Encode of the hash of the Endorsement Public Key:");
Javier Martinez Canillas 83d0ae
 
Javier Martinez Canillas 83d0ae
@@ -287,9 +288,19 @@ char *Base64Encode(const unsigned char* buffer)
Javier Martinez Canillas 83d0ae
     bio = BIO_push(b64, bio);
Javier Martinez Canillas 83d0ae
     BIO_set_flags(bio, BIO_FLAGS_BASE64_NO_NL);
Javier Martinez Canillas 83d0ae
     BIO_write(bio, buffer, SHA256_DIGEST_LENGTH);
Javier Martinez Canillas 83d0ae
-    BIO_flush(bio);
Javier Martinez Canillas 83d0ae
+    int rc = BIO_flush(bio);
Javier Martinez Canillas 83d0ae
+    if (rc < 0) {
Javier Martinez Canillas 83d0ae
+        LOG_ERR("BIO_flush() failed");
Javier Martinez Canillas 83d0ae
+        goto bio_out;
Javier Martinez Canillas 83d0ae
+    }
Javier Martinez Canillas 83d0ae
+
Javier Martinez Canillas 83d0ae
     BIO_get_mem_ptr(bio, &bufferPtr);
Javier Martinez Canillas 83d0ae
-    BIO_set_close(bio, BIO_NOCLOSE);
Javier Martinez Canillas 83d0ae
+
Javier Martinez Canillas 83d0ae
+    rc = BIO_set_close(bio, BIO_NOCLOSE);
Javier Martinez Canillas 83d0ae
+    if (rc < 0) {
Javier Martinez Canillas 83d0ae
+        LOG_ERR("BIO_set_close() failed");
Javier Martinez Canillas 83d0ae
+        goto bio_out;
Javier Martinez Canillas 83d0ae
+    }
Javier Martinez Canillas 83d0ae
 
Javier Martinez Canillas 83d0ae
     /* these are not NULL terminated */
Javier Martinez Canillas 83d0ae
     char *b64text = bufferPtr->data;
Javier Martinez Canillas 83d0ae
@@ -305,8 +316,6 @@ char *Base64Encode(const unsigned char* buffer)
Javier Martinez Canillas 83d0ae
         }
Javier Martinez Canillas 83d0ae
     }
Javier Martinez Canillas 83d0ae
 
Javier Martinez Canillas 83d0ae
-    char *final_string = NULL;
Javier Martinez Canillas 83d0ae
-
Javier Martinez Canillas 83d0ae
     CURL *curl = curl_easy_init();
Javier Martinez Canillas 83d0ae
     if (curl) {
Javier Martinez Canillas 83d0ae
         char *output = curl_easy_escape(curl, b64text, len);
Javier Martinez Canillas 83d0ae
@@ -317,6 +326,7 @@ char *Base64Encode(const unsigned char* buffer)
Javier Martinez Canillas 83d0ae
     }
Javier Martinez Canillas 83d0ae
     curl_easy_cleanup(curl);
Javier Martinez Canillas 83d0ae
     curl_global_cleanup();
Javier Martinez Canillas 83d0ae
+bio_out:
Javier Martinez Canillas 83d0ae
     BIO_free_all(bio);
Javier Martinez Canillas 83d0ae
 
Javier Martinez Canillas 83d0ae
     /* format to a proper NULL terminated string */
Javier Martinez Canillas 83d0ae
-- 
Javier Martinez Canillas 83d0ae
2.19.2
Javier Martinez Canillas 83d0ae