You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
gentoo-full-overlay/dev-libs/libtpms/files/libtpms-0.7.0-tpm12-Initial...

109 lines
6.6 KiB

This file contains ambiguous Unicode characters!

This file contains ambiguous Unicode characters that may be confused with others in your current locale. If your use case is intentional and legitimate, you can safely ignore this warning. Use the Escape button to highlight these characters.

From 464083396ae1d242fb2a26c1ab6e39971e82f47e Mon Sep 17 00:00:00 2001
From: Stefan Berger <stefanb@linux.ibm.com>
Date: Fri, 17 Jan 2020 19:01:24 +0000
Subject: [PATCH 3/3] tpm12: Initialize a few variables for x86 gcc -O3
MIME-Version: 1.0
Content-Type: text/plain; charset=UTF-8
Content-Transfer-Encoding: 8bit
gcc (Ubuntu 5.4.0-6ubuntu1~16.04.12) 5.4.0 20160609
The above gcc on x86 with -O3 reports the following false positives:
gcc -DHAVE_CONFIG_H -I. -I.. -include tpm_library_conf.h -I../include/libtpms -I../include/libtpms -fstack-protector-strong -DTPM_V12 -DTPM_PCCLIENT -DTPM_VOLATILE_LOAD -DTPM_ENABLE_ACTIVATE -DTPM_AES -DTPM_LIBTPMS_CALLBACKS -DTPM_NV_DISK -DTPM_POSIX -DTPM_NOMAINTENANCE_COMMANDS -O3 -DUSE_OPENSSL_FUNCTIONS_SYMMETRIC=1 -DUSE_OPENSSL_FUNCTIONS_EC=1 -DUSE_OPENSSL_FUNCTIONS_ECDSA=0 -DUSE_OPENSSL_FUNCTIONS_RSA=0 -Wall -Werror -Wreturn-type -Wsign-compare -Wno-self-assign -MT tpm12/libtpms_tpm12_la-tpm_nvram.lo -MD -MP -MF tpm12/.deps/libtpms_tpm12_la-tpm_nvram.Tpo -c tpm12/tpm_nvram.c -o tpm12/libtpms_tpm12_la-tpm_nvram.o
tpm12/tpm_nvram.c: In function TPM_Process_NVReadValue:
tpm12/tpm_nvram.c:1539:38: error: isGPIO may be used uninitialized in this function [-Werror=maybe-uninitialized]
if ((returnCode == TPM_SUCCESS) && !isGPIO) {
^
tpm12/tpm_nvram.c: In function TPM_Process_NVWriteValue:
tpm12/tpm_nvram.c:2323:6: error: isGPIO may be used uninitialized in this function [-Werror=maybe-uninitialized]
if (!isGPIO) {
^
gcc -DHAVE_CONFIG_H -I. -I.. -include tpm_library_conf.h -I../include/libtpms -I../include/libtpms -fstack-protector-strong -DTPM_V12 -DTPM_PCCLIENT -DTPM_VOLATILE_LOAD -DTPM_ENABLE_ACTIVATE -DTPM_AES -DTPM_LIBTPMS_CALLBACKS -DTPM_NV_DISK -DTPM_POSIX -DTPM_NOMAINTENANCE_COMMANDS -O3 -DUSE_OPENSSL_FUNCTIONS_SYMMETRIC=1 -DUSE_OPENSSL_FUNCTIONS_EC=1 -DUSE_OPENSSL_FUNCTIONS_ECDSA=0 -DUSE_OPENSSL_FUNCTIONS_RSA=0 -Wall -Werror -Wreturn-type -Wsign-compare -Wno-self-assign -MT tpm12/libtpms_tpm12_la-tpm_process.lo -MD -MP -MF tpm12/.deps/libtpms_tpm12_la-tpm_process.Tpo -c tpm12/tpm_process.c -o tpm12/libtpms_tpm12_la-tpm_process.o
tpm12/tpm_process.c: In function TPM_Process_GetCapabilitySigned:
tpm12/tpm_process.c:5089:19: error: transportEncrypt may be used uninitialized in this function [-Werror=maybe-uninitialized]
returnCode = TPM_ProcessAudit(tpm_state,
^
tpm12/tpm_process.c: In function TPM_Process_SetCapability:
tpm12/tpm_process.c:5309:19: error: transportEncrypt may be used uninitialized in this function [-Werror=maybe-uninitialized]
returnCode = TPM_ProcessAudit(tpm_state,
^
tpm12/tpm_process.c: At top level:
gcc -DHAVE_CONFIG_H -I. -I.. -include tpm_library_conf.h -I../include/libtpms -I../include/libtpms -fstack-protector-strong -DTPM_V12 -DTPM_PCCLIENT -DTPM_VOLATILE_LOAD -DTPM_ENABLE_ACTIVATE -DTPM_AES -DTPM_LIBTPMS_CALLBACKS -DTPM_NV_DISK -DTPM_POSIX -DTPM_NOMAINTENANCE_COMMANDS -O3 -DUSE_OPENSSL_FUNCTIONS_SYMMETRIC=1 -DUSE_OPENSSL_FUNCTIONS_EC=1 -DUSE_OPENSSL_FUNCTIONS_ECDSA=0 -DUSE_OPENSSL_FUNCTIONS_RSA=0 -Wall -Werror -Wreturn-type -Wsign-compare -Wno-self-assign -MT tpm12/libtpms_tpm12_la-tpm_transport.lo -MD -MP -MF tpm12/.deps/libtpms_tpm12_la-tpm_transport.Tpo -c tpm12/tpm_transport.c -o tpm12/libtpms_tpm12_la-tpm_transport.o
tpm12/tpm_transport.c: In function TPM_Process_ReleaseTransportSigned:
tpm12/tpm_transport.c:2810:42: error: t1TpmTransportInternal may be used uninitialized in this function [-Werror=maybe-uninitialized]
returnCode = TPM_TransportLogOut_Extend(t1TpmTransportInternal->transDigest,
^
This patch initializes the variables.
Signed-off-by: Stefan Berger <stefanb@linux.ibm.com>
---
src/tpm12/tpm_nvram.c | 4 ++--
src/tpm12/tpm_process.c | 4 ++--
src/tpm12/tpm_transport.c | 2 +-
3 files changed, 5 insertions(+), 5 deletions(-)
diff --git a/src/tpm12/tpm_nvram.c b/src/tpm12/tpm_nvram.c
index 1b9c005..620944e 100644
--- a/src/tpm12/tpm_nvram.c
+++ b/src/tpm12/tpm_nvram.c
@@ -1288,7 +1288,7 @@ TPM_RESULT TPM_Process_NVReadValue(tpm_state_t *tpm_state,
TPM_BOOL ignore_auth = FALSE;
TPM_BOOL dir = FALSE;
TPM_BOOL physicalPresence;
- TPM_BOOL isGPIO;
+ TPM_BOOL isGPIO = FALSE;
BYTE *gpioData = NULL;
TPM_NV_DATA_SENSITIVE *d1NvdataSensitive;
uint32_t s1Last;
@@ -2000,7 +2000,7 @@ TPM_RESULT TPM_Process_NVWriteValue(tpm_state_t *tpm_state,
TPM_NV_DATA_SENSITIVE *d1NvdataSensitive;
uint32_t s1Last;
TPM_BOOL physicalPresence;
- TPM_BOOL isGPIO;
+ TPM_BOOL isGPIO = FALSE;
uint32_t nv1 = tpm_state->tpm_permanent_data.noOwnerNVWrite;
/* temp for noOwnerNVWrite, initialize to
silence compiler */
diff --git a/src/tpm12/tpm_process.c b/src/tpm12/tpm_process.c
index d6a3b8e..c433621 100644
--- a/src/tpm12/tpm_process.c
+++ b/src/tpm12/tpm_process.c
@@ -4844,7 +4844,7 @@ TPM_RESULT TPM_Process_GetCapabilitySigned(tpm_state_t *tpm_state,
unsigned char * inParamEnd; /* ending point of inParam's */
TPM_DIGEST inParamDigest;
TPM_BOOL auditStatus; /* audit the ordinal */
- TPM_BOOL transportEncrypt; /* wrapped in encrypted transport session */
+ TPM_BOOL transportEncrypt = FALSE;/* wrapped in encrypted transport session */
TPM_BOOL authHandleValid = FALSE;
TPM_AUTH_SESSION_DATA *auth_session_data; /* session data for authHandle */
TPM_SECRET *hmacKey;
@@ -5144,7 +5144,7 @@ TPM_RESULT TPM_Process_SetCapability(tpm_state_t *tpm_state,
unsigned char * inParamEnd; /* ending point of inParam's */
TPM_DIGEST inParamDigest;
TPM_BOOL auditStatus; /* audit the ordinal */
- TPM_BOOL transportEncrypt; /* wrapped in encrypted transport session */
+ TPM_BOOL transportEncrypt = FALSE;/* wrapped in encrypted transport session */
TPM_BOOL authHandleValid = FALSE;
TPM_AUTH_SESSION_DATA *auth_session_data; /* session data for authHandle */
TPM_SECRET *hmacKey;
diff --git a/src/tpm12/tpm_transport.c b/src/tpm12/tpm_transport.c
index 2261670..7b9c520 100644
--- a/src/tpm12/tpm_transport.c
+++ b/src/tpm12/tpm_transport.c
@@ -2599,7 +2599,7 @@ TPM_RESULT TPM_Process_ReleaseTransportSigned(tpm_state_t *tpm_state,
TPM_BOOL authHandleValid = FALSE;
TPM_BOOL transHandleValid = FALSE;
TPM_AUTH_SESSION_DATA *auth_session_data = NULL; /* session data for authHandle */
- TPM_TRANSPORT_INTERNAL *t1TpmTransportInternal;
+ TPM_TRANSPORT_INTERNAL *t1TpmTransportInternal = NULL;
TPM_SECRET *hmacKey;
TPM_KEY *sigKey = NULL; /* the key specified by keyHandle */
TPM_BOOL parentPCRStatus;
--
2.26.2