File 5be2c2ed-stubdom-vtpm-fix-memcmp-in-TPM_ChangeAuthAsymFinish.patch of Package xen.openSUSE_Leap_42.3_Update

Subject: stubdom/vtpm: fix memcmp in TPM_ChangeAuthAsymFinish
From: Olaf Hering olaf@aepfle.de Mon Jun 18 14:55:36 2018 +0200
Date: Wed Nov 7 10:48:13 2018 +0000:
Git: f13983db120f5e56dfefbee5d56678d2d43e2914

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>

diff --git a/stubdom/Makefile b/stubdom/Makefile
index db01827070..aa63ace143 100644
--- a/stubdom/Makefile
+++ b/stubdom/Makefile
@@ -228,6 +228,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
index 0000000000..10b89a4c3a
--- /dev/null
+++ b/stubdom/vtpm_TPM_ChangeAuthAsymFinish.patch
@@ -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;
+   }
openSUSE Build Service is sponsored by