|
Ran
|
Jobs
1
|
Files
89
|
Run time
1min
|
Badge
README BADGES
|
push
github
FFI: Prevent sanitizer warning in carith_ptr(). Reported by Sergey Bronnikov. (cherry picked from commit c3b379bf5) The Undefined Behaviour Sanitizer [1] produce a warning about signed integer overflow in the function carith_ptr(), when idx equals INT_MIN in the expression idx = -idx. In practice, on 32-bit platforms, negating -2147483648 wraps back to itself instead of producing the correct positive value, leading to incorrect pointer arithmetic in carith_ptr() for MM_sub (pointer subtraction). The patch fixes that by converting idx to unsigned (uintptr_t), computes two's complement negation via bitwise negation + 1 (safe from overflow in unsigned arithmetic), and casts back to ptrdiff_t. This avoids signed overflow entirely and correctly negates even the INT_MIN edge case. [1]: https://clang.llvm.org/docs/UndefinedBehaviorSanitizer.html Sergey Bronnikov: * added the description and the test for the problem Part of tarantool/tarantool#12480
5734 of 6058 branches covered (94.65%)
Branch coverage included in aggregate %.
1 of 1 new or added line in 1 file covered. (100.0%)
12 existing lines in 2 files now uncovered.21871 of 23555 relevant lines covered (92.85%)
3971505.22 hits per line
| Lines | Coverage | ∆ | File |
|---|---|---|---|
| 10 |
77.88 |
-1.01% | src/lj_api.c |
| 2 |
92.0 |
-0.44% | src/luajit.c |
| ID | Job ID | Ran | Files | Coverage | |
|---|---|---|---|---|---|
| 1 | 30092415860.1 | 89 |
93.22 |
GitHub Action Run |
| Coverage | ∆ | File | Lines | Relevant | Covered | Missed | Hits/Line | Branch Hits | Branch Misses |
|---|