14cffe588Sopenharmony_ciFrom ebbc5e14cdbfcc24bf3c9bb7b41ee10cd979c535 Mon Sep 17 00:00:00 2001 24cffe588Sopenharmony_ciFrom: serge-sans-paille <serge.guelton@telecom-bretagne.eu> 34cffe588Sopenharmony_ciDate: Thu, 2 Feb 2023 11:40:17 +0000 44cffe588Sopenharmony_ciSubject: [PATCH] Fix signed vs unsigned comparison (#765) 54cffe588Sopenharmony_ci 64cffe588Sopenharmony_ciAs reported by -Wsign-compare. In the case of getting the result of 74cffe588Sopenharmony_cicomparing the result of sysconf (_SC_PAGESIZE) to other value, this also 84cffe588Sopenharmony_cicorrectly handles edge cases where the above fails and returns -1. 94cffe588Sopenharmony_ci 104cffe588Sopenharmony_ciCo-authored-by: serge-sans-paille <sguelton@mozilla.com> 114cffe588Sopenharmony_ci--- 124cffe588Sopenharmony_ci src/closures.c | 2 +- 134cffe588Sopenharmony_ci src/prep_cif.c | 2 +- 144cffe588Sopenharmony_ci src/tramp.c | 7 +++++-- 154cffe588Sopenharmony_ci 3 files changed, 7 insertions(+), 4 deletions(-) 164cffe588Sopenharmony_ci 174cffe588Sopenharmony_cidiff --git a/src/closures.c b/src/closures.c 184cffe588Sopenharmony_ciindex 9aafbec4b..c42527795 100644 194cffe588Sopenharmony_ci--- a/src/closures.c 204cffe588Sopenharmony_ci+++ b/src/closures.c 214cffe588Sopenharmony_ci@@ -795,7 +795,7 @@ open_temp_exec_file (void) 224cffe588Sopenharmony_ci static int 234cffe588Sopenharmony_ci allocate_space (int fd, off_t offset, off_t len) 244cffe588Sopenharmony_ci { 254cffe588Sopenharmony_ci- static size_t page_size; 264cffe588Sopenharmony_ci+ static long page_size; 274cffe588Sopenharmony_ci 284cffe588Sopenharmony_ci /* Obtain system page size. */ 294cffe588Sopenharmony_ci if (!page_size) 304cffe588Sopenharmony_cidiff --git a/src/prep_cif.c b/src/prep_cif.c 314cffe588Sopenharmony_ciindex 2d0f2521f..0e2d58e5e 100644 324cffe588Sopenharmony_ci--- a/src/prep_cif.c 334cffe588Sopenharmony_ci+++ b/src/prep_cif.c 344cffe588Sopenharmony_ci@@ -234,7 +234,7 @@ ffi_status ffi_prep_cif_var(ffi_cif *cif, 354cffe588Sopenharmony_ci { 364cffe588Sopenharmony_ci ffi_status rc; 374cffe588Sopenharmony_ci size_t int_size = ffi_type_sint.size; 384cffe588Sopenharmony_ci- int i; 394cffe588Sopenharmony_ci+ unsigned int i; 404cffe588Sopenharmony_ci 414cffe588Sopenharmony_ci rc = ffi_prep_cif_core(cif, abi, 1, nfixedargs, ntotalargs, rtype, atypes); 424cffe588Sopenharmony_ci 434cffe588Sopenharmony_cidiff --git a/src/tramp.c b/src/tramp.c 444cffe588Sopenharmony_ciindex b9d273a1a..7e005b054 100644 454cffe588Sopenharmony_ci--- a/src/tramp.c 464cffe588Sopenharmony_ci+++ b/src/tramp.c 474cffe588Sopenharmony_ci@@ -266,7 +266,7 @@ ffi_tramp_get_temp_file (void) 484cffe588Sopenharmony_ci * trampoline table to make sure that the temporary file can be mapped. 494cffe588Sopenharmony_ci */ 504cffe588Sopenharmony_ci count = write(tramp_globals.fd, tramp_globals.text, tramp_globals.map_size); 514cffe588Sopenharmony_ci- if (count == tramp_globals.map_size && tramp_table_alloc ()) 524cffe588Sopenharmony_ci+ if (count >=0 && (size_t)count == tramp_globals.map_size && tramp_table_alloc ()) 534cffe588Sopenharmony_ci return 1; 544cffe588Sopenharmony_ci 554cffe588Sopenharmony_ci close (tramp_globals.fd); 564cffe588Sopenharmony_ci@@ -374,6 +374,8 @@ tramp_table_unmap (struct tramp_table *table) 574cffe588Sopenharmony_ci static int 584cffe588Sopenharmony_ci ffi_tramp_init (void) 594cffe588Sopenharmony_ci { 604cffe588Sopenharmony_ci+ long page_size; 614cffe588Sopenharmony_ci+ 624cffe588Sopenharmony_ci if (tramp_globals.status == TRAMP_GLOBALS_PASSED) 634cffe588Sopenharmony_ci return 1; 644cffe588Sopenharmony_ci 654cffe588Sopenharmony_ci@@ -396,7 +398,8 @@ ffi_tramp_init (void) 664cffe588Sopenharmony_ci &tramp_globals.map_size); 674cffe588Sopenharmony_ci tramp_globals.ntramp = tramp_globals.map_size / tramp_globals.size; 684cffe588Sopenharmony_ci 694cffe588Sopenharmony_ci- if (sysconf (_SC_PAGESIZE) > tramp_globals.map_size) 704cffe588Sopenharmony_ci+ page_size = sysconf (_SC_PAGESIZE); 714cffe588Sopenharmony_ci+ if (page_size >= 0 && (size_t)page_size > tramp_globals.map_size) 724cffe588Sopenharmony_ci return 0; 734cffe588Sopenharmony_ci 744cffe588Sopenharmony_ci if (ffi_tramp_init_os ()) 75