f2bc8403f4
pointer volatile to avoid the false positive diagnostic
83 lines
3.1 KiB
Diff
83 lines
3.1 KiB
Diff
diff --git a/tboot/common/tpm_12.c b/tboot/common/tpm_12.c
|
|
index a62e570..504b874 100644
|
|
--- a/tboot/common/tpm_12.c
|
|
+++ b/tboot/common/tpm_12.c
|
|
@@ -766,6 +766,8 @@ static uint32_t tpm12_osap(uint32_t locality, tpm_entity_type_t ent_type,
|
|
tpm_authhandle_t *hauth, tpm_nonce_t *nonce_even,
|
|
tpm_nonce_t *even_osap)
|
|
{
|
|
+#pragma GCC diagnostic push
|
|
+#pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
|
|
uint32_t ret, offset, out_size;
|
|
|
|
if ( odd_osap == NULL || hauth == NULL ||
|
|
@@ -801,6 +803,7 @@ static uint32_t tpm12_osap(uint32_t locality, tpm_entity_type_t ent_type,
|
|
LOAD_BLOB_TYPE(WRAPPER_OUT_BUF, offset, even_osap);
|
|
|
|
return ret;
|
|
+#pragma GCC diagnostic pop
|
|
}
|
|
|
|
static uint32_t _tpm12_seal(uint32_t locality, tpm_key_handle_t hkey,
|
|
@@ -1044,6 +1047,8 @@ static uint32_t _tpm12_wrap_seal(uint32_t locality,
|
|
static uint32_t _tpm12_wrap_unseal(uint32_t locality, const uint8_t *in_data,
|
|
uint32_t *secret_size, uint8_t *secret)
|
|
{
|
|
+#pragma GCC diagnostic push
|
|
+#pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
|
|
uint32_t ret;
|
|
tpm_nonce_t odd_osap, even_osap;
|
|
tpm_nonce_t nonce_even, nonce_odd, nonce_even_d, nonce_odd_d;
|
|
@@ -1116,6 +1121,7 @@ static uint32_t _tpm12_wrap_unseal(uint32_t locality, const uint8_t *in_data,
|
|
/* skip check for res_auth */
|
|
|
|
return ret;
|
|
+#pragma GCC diagnostic pop
|
|
}
|
|
|
|
static bool init_pcr_info(uint32_t locality,
|
|
@@ -1948,6 +1954,8 @@ static bool tpm12_get_random(struct tpm_if *ti, uint32_t locality,
|
|
|
|
static bool tpm12_cap_pcrs(struct tpm_if *ti, u32 locality, int pcr)
|
|
{
|
|
+#pragma GCC diagnostic push
|
|
+#pragma GCC diagnostic ignored "-Wmaybe-uninitialized"
|
|
bool was_capped[TPM_NR_PCRS] = {false};
|
|
tpm_pcr_value_t cap_val; /* use whatever val is on stack */
|
|
|
|
@@ -1976,6 +1984,7 @@ static bool tpm12_cap_pcrs(struct tpm_if *ti, u32 locality, int pcr)
|
|
|
|
printk(TBOOT_INFO"cap'ed dynamic PCRs\n");
|
|
return true;
|
|
+#pragma GCC diagnostic pop
|
|
}
|
|
|
|
static bool tpm12_check(void)
|
|
diff --git a/tboot/include/rijndael.h b/tboot/include/rijndael.h
|
|
index 2974602..8dbcc7c 100644
|
|
--- a/tboot/include/rijndael.h
|
|
+++ b/tboot/include/rijndael.h
|
|
@@ -52,7 +52,7 @@ void rijndael_encrypt(rijndael_ctx *, const u_char *, u_char *);
|
|
|
|
int rijndaelKeySetupEnc(unsigned int [], const unsigned char [], int);
|
|
int rijndaelKeySetupDec(unsigned int [], const unsigned char [], int);
|
|
-void rijndaelEncrypt(const unsigned int [], int, const unsigned char [],
|
|
- unsigned char []);
|
|
+void rijndaelEncrypt(const unsigned int [], int, const unsigned char [16],
|
|
+ unsigned char [16]);
|
|
|
|
#endif /* __RIJNDAEL_H */
|
|
diff --git a/tboot/common/loader.c b/tboot/common/loader.c
|
|
index cbb7def..6169564 100644
|
|
--- a/tboot/common/loader.c
|
|
+++ b/tboot/common/loader.c
|
|
@@ -59,7 +59,7 @@
|
|
#include <tpm.h>
|
|
|
|
/* copy of kernel/VMM command line so that can append 'tboot=0x1234' */
|
|
-static char *new_cmdline = (char *)TBOOT_KERNEL_CMDLINE_ADDR;
|
|
+static char * volatile new_cmdline = (char *)TBOOT_KERNEL_CMDLINE_ADDR;
|
|
|
|
/* MLE/kernel shared data page (in boot.S) */
|
|
extern tboot_shared_t _tboot_shared;
|