From 22728f16eb611411258146045030292e1170bfef Mon Sep 17 00:00:00 2001 From: Peter Jones Date: Wed, 14 Feb 2018 16:15:28 -0500 Subject: [PATCH] libsmbios: fix more places with loop iterators with bad types In these cases we get: ../src/libsmbios_c/smbios/smbios_obj.c: In function 'smbios_verify_smbios': ../src/libsmbios_c/smbios/smbios_obj.c:415:31: error: comparison of integer expressions of different signedness: 'unsigned int' and 'long int' [-Werror=sign-compare] for(unsigned int i = 0; i < length ; ++i ) ^ ../src/libsmbios_c/smbios/smbios_obj.c: In function 'smbios_verify_smbios3': ../src/libsmbios_c/smbios/smbios_obj.c:436:31: error: comparison of integer expressions of different signedness: 'unsigned int' and 'long int' [-Werror=sign-compare] for(unsigned int i = 0; i < length ; ++i ) ^ I really don't understand why gcc will complain about it being signed vs unsigned, but not about the fact that the int can obviously overflow before the condition being checked against length, a larger type, is satisfied. Signed-off-by: Peter Jones --- src/libsmbios_c/smbios/smbios_obj.c | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/libsmbios_c/smbios/smbios_obj.c b/src/libsmbios_c/smbios/smbios_obj.c index a6f2e1e3525..c932ba59535 100644 --- a/src/libsmbios_c/smbios/smbios_obj.c +++ b/src/libsmbios_c/smbios/smbios_obj.c @@ -412,7 +412,7 @@ bool __hidden smbios_verify_smbios(const char *buf, long length, long *dmi_lengt bool retval = true; u8 checksum = 0; - for(unsigned int i = 0; i < length ; ++i ) + for(long i = 0; i < length ; ++i ) checksum = (checksum + buf[i]) & 0xFF; fnprintf("SMBIOS TEP csum %d.\n", (int)checksum); @@ -433,7 +433,7 @@ bool __hidden smbios_verify_smbios3(const char *buf, long length, long *dmi_leng { struct smbios_table_entry_point_64 *ep; u8 checksum = 0; - for(unsigned int i = 0; i < length ; ++i ) + for(long i = 0; i < length ; ++i ) checksum = (checksum + buf[i]) & 0xFF; fnprintf("SMBIOS TEP csum %d.\n", (int)checksum); -- 2.14.3