Skip to content

Commit 98f32bf

Browse files
mikhailnovstevegrubb
authored andcommitted
Fix INTEGER_OVERFLOW in gen_tables.h
Use ssize_t instead of size_t for binary search index Fix integer underflow in gen_tables.h by changing mid from size_t to ssize_t in s2i__() and i2s_bsearch__(). This prevents mid - 1 from wrapping to SIZE_MAX when mid is 0, which would break the binary search loop termination condition. Resolves Svace INTEGER_OVERFLOW warning (for audit-userspace v3.0.8): An integer underflow may occur due to arithmetic operation (unsigned subtraction) between variable 'mid' and value '1', when 'mid' is equal to '0' (CWE125, CWE190, CWE191) Location: gen_tables.h:90 Co-authored-by: Z.AI GLM-5
1 parent f8c85b8 commit 98f32bf

1 file changed

Lines changed: 3 additions & 2 deletions

File tree

lib/gen_tables.h

Lines changed: 3 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,8 @@ inline static int s2i__(const char *strings, const unsigned *s_table,
3636
ssize_t left = 0, right = n - 1;
3737

3838
while (left <= right) { /* invariant: left <= x <= right */
39-
size_t mid, off, i;
39+
ssize_t mid;
40+
size_t off, i;
4041
const char *t;
4142
int r;
4243

@@ -87,7 +88,7 @@ inline static const char *i2s_bsearch__(const char *strings,
8788
left = 0;
8889
right = n - 1;
8990
while (left <= right) { /* invariant: left <= x <= right */
90-
size_t mid;
91+
ssize_t mid;
9192
int mid_val;
9293

9394
mid = (left + right) / 2;

0 commit comments

Comments
 (0)