]> xenbits.xensource.com Git - people/dwmw2/xen.git/commitdiff
stubdom/vtpm: fix memcmp in TPM_ChangeAuthAsymFinish
authorOlaf Hering <olaf@aepfle.de>
Mon, 18 Jun 2018 12:55:36 +0000 (14:55 +0200)
committerIan Jackson <ian.jackson@eu.citrix.com>
Wed, 7 Nov 2018 10:46:37 +0000 (10:46 +0000)
gcc8 spotted this error:
error: 'memcmp' reading 20 bytes from a region of size 8 [-Werror=stringop-overflow=]

Signed-off-by: Olaf Hering <olaf@aepfle.de>
Reviewed-by: Samuel Thibault <samuel.thibault@ens-lyon.org>
(cherry picked from commit 22bf5be3237cb482a2ffd772ffd20ce37285eebf)

stubdom/Makefile
stubdom/vtpm_TPM_ChangeAuthAsymFinish.patch [new file with mode: 0644]

index 7cb62e6c3625faa701cafa3d1dfb8bef771a755c..34bd9e238bef6020224444a402b26efd2b0fc23e 100644 (file)
@@ -229,6 +229,7 @@ tpm_emulator-$(XEN_TARGET_ARCH): tpm_emulator-$(TPMEMU_VERSION).tar.gz
        patch -d $@ -p1 < vtpm-deepquote-anyloc.patch
        patch -d $@ -p1 < vtpm-cmake-Wextra.patch
        patch -d $@ -p1 < vtpm-implicit-fallthrough.patch
+       patch -d $@ -p1 < vtpm_TPM_ChangeAuthAsymFinish.patch
        mkdir $@/build
        cd $@/build; CC=${CC} $(CMAKE) .. -DCMAKE_C_FLAGS:STRING="-std=c99 -DTPM_NO_EXTERN $(TARGET_CPPFLAGS) $(TARGET_CFLAGS) -Wno-declaration-after-statement"
        touch $@
diff --git a/stubdom/vtpm_TPM_ChangeAuthAsymFinish.patch b/stubdom/vtpm_TPM_ChangeAuthAsymFinish.patch
new file mode 100644 (file)
index 0000000..10b89a4
--- /dev/null
@@ -0,0 +1,12 @@
+error: 'memcmp' reading 20 bytes from a region of size 8 [-Werror=stringop-overflow=]
+--- a/tpm/tpm_deprecated.c
++++ b/tpm/tpm_deprecated.c
+@@ -434,7 +434,7 @@ TPM_RESULT TPM_ChangeAuthAsymFinish(TPM_
+   tpm_hmac_final(&hmac_ctx, b1.digest);
+   /* 6. The TPM SHALL compare b1 with newAuthLink. The TPM SHALL
+         indicate a failure if the values do not match. */
+-  if (memcmp(&b1, &newAuthLink, sizeof(TPM_HMAC))) {
++  if (memcmp(&b1, newAuthLink, sizeof(TPM_HMAC))) {
+     debug("TPM_ChangeAuthAsymFinish(): newAuthLink value does not match.");
+     return TPM_FAIL;
+   }