From: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Date: Sat, 2 Nov 2024 10:27:37 +0000 (+0100)
Subject: tpm: use memmove() for overlapping buffers
X-Git-Tag: v2025.01-rc5-pxa1908~101^2~1
X-Git-Url: http://git.dujemihanovic.xyz/img/%7B%7B?a=commitdiff_plain;h=6c717d952d455d2efc267496fa9797a656459e6f;p=u-boot.git

tpm: use memmove() for overlapping buffers

The behavior of memcpy() for overlapping buffers is undefined.

Fixes: 4c57ec76b725 ("tpm: Implement state command for Cr50")
Addresses-Coverity-ID: 356664 Overlapping buffer in memory copy
Signed-off-by: Heinrich Schuchardt <heinrich.schuchardt@canonical.com>
Reviewed-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
Signed-off-by: Ilias Apalodimas <ilias.apalodimas@linaro.org>
---

diff --git a/lib/tpm-v2.c b/lib/tpm-v2.c
index 59e6cbafaf..ad2b5ab0c3 100644
--- a/lib/tpm-v2.c
+++ b/lib/tpm-v2.c
@@ -821,7 +821,7 @@ u32 tpm2_report_state(struct udevice *dev, uint vendor_cmd, uint vendor_subcmd,
 	if (*recv_size < 12)
 		return -ENODATA;
 	*recv_size -= 12;
-	memcpy(recvbuf, recvbuf + 12, *recv_size);
+	memmove(recvbuf, recvbuf + 12, *recv_size);
 
 	return 0;
 }