소스 검색

fix sign-compare warnings (#4876)

TianlongLiang 9 시간 전
부모
커밋
c3a78cd159
1개의 변경된 파일6개의 추가작업 그리고 2개의 파일을 삭제
  1. 6 2
      core/iwasm/libraries/libc-wasi/sandboxed-system-primitives/src/posix.c

+ 6 - 2
core/iwasm/libraries/libc-wasi/sandboxed-system-primitives/src/posix.c

@@ -430,7 +430,9 @@ fd_table_attach(struct fd_table *ft, __wasi_fd_t fd, struct fd_object *fo,
                 __wasi_rights_t rights_base, __wasi_rights_t rights_inheriting)
     REQUIRES_EXCLUSIVE(ft->lock) CONSUMES(fo->refcount)
 {
-    bh_assert(ft->size > (size_t)fd && "File descriptor table too small");
+    bh_assert(ft->size <= INT_MAX
+              && "Unsigned value is out of signed int range");
+    bh_assert((int32_t)ft->size > fd && "File descriptor table too small");
     struct fd_entry *fe = &ft->entries[fd];
     bh_assert(fe->object == NULL
               && "Attempted to overwrite an existing descriptor");
@@ -446,7 +448,9 @@ static void
 fd_table_detach(struct fd_table *ft, __wasi_fd_t fd, struct fd_object **fo)
     REQUIRES_EXCLUSIVE(ft->lock) PRODUCES((*fo)->refcount)
 {
-    bh_assert(ft->size > fd && "File descriptor table too small");
+    bh_assert(ft->size <= INT_MAX
+              && "Unsigned value is out of signed int range");
+    bh_assert((int32_t)ft->size > fd && "File descriptor table too small");
     struct fd_entry *fe = &ft->entries[fd];
     *fo = fe->object;
     bh_assert(*fo != NULL && "Attempted to detach nonexistent descriptor");