]> xenbits.xensource.com Git - 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:49:17 +0000 (10:49 +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)
(cherry picked from commit dea9fc0e02d92f5e6d46680aa0a52fa758eca9c4)
(cherry picked from commit e907460fd61c350487ffee5d8aa375bef56bc81c)
Conflicts:
stubdom/Makefile
Signed-off-by: Ian Jackson <ian.jackson@eu.citrix.com>
(cherry picked from commit f13983db120f5e56dfefbee5d56678d2d43e2914)
(cherry picked from commit d6798ce35707a485d9c132319d70dd654620e5e5)

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

index 2044d76ed681ecf267f40a81bd701e1581f11fb8..4d52ea274ddc542e25548c19b7d4a296117e20a0 100644 (file)
@@ -221,6 +221,7 @@ tpm_emulator-$(XEN_TARGET_ARCH): tpm_emulator-$(TPMEMU_VERSION).tar.gz
        patch -d $@ -p1 < vtpm-deepquote.patch
        patch -d $@ -p1 < vtpm-deepquote-anyloc.patch
        patch -d $@ -p1 < vtpm-cmake-Wextra.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;
+   }