[PATCH] lib: fwts_acpi: fix potential infinite loop in data copy

Colin King colin.king at canonical.com
Tue Mar 30 10:39:27 UTC 2021


From: Colin Ian King <colin.king at canonical.com>

The loop index i is a uint8_t however it is being compared to an
upper loop limit that is a wider type of size_t. When i reaches
255 it will wrap around to 0 and the loop will never exit. Fix this
by making i a size_t type.

Addresses-Coverity: ("Infinite loop")
Fixes: 4ad3e374bf98 ("acpi: fadt: X_GPE0/1_BLK can be zero when not used")
Signed-off-by: Colin Ian King <colin.king at canonical.com>
---
 src/lib/src/fwts_acpi.c | 5 +++--
 1 file changed, 3 insertions(+), 2 deletions(-)

diff --git a/src/lib/src/fwts_acpi.c b/src/lib/src/fwts_acpi.c
index 89378d0e..2e95bc77 100644
--- a/src/lib/src/fwts_acpi.c
+++ b/src/lib/src/fwts_acpi.c
@@ -59,9 +59,10 @@ void fwts_acpi_table_get_header(fwts_acpi_table_header *hdr, uint8_t *data)
 	memcpy(hdr, data, sizeof(fwts_acpi_table_header));
 }
 
-bool fwts_acpi_data_zero(const void *data, const size_t len) {
+bool fwts_acpi_data_zero(const void *data, const size_t len)
+{
 	uint8_t *ptr = (uint8_t *) data;
-	uint8_t i;
+	size_t i;
 
 	for (i = 0; i < len; i++)
 		if (*ptr++)
-- 
2.30.2




More information about the fwts-devel mailing list