|
Ran
|
Jobs
1
|
Files
89
|
Run time
1min
|
Badge
README BADGES
|
push
github
Prevent loop in snap_usedef(). Reported by XmiliaH. (cherry picked from commit 0e66fc963) It is possible to get an infinite loop in a function `snap_usedef` when a `UCLO` makes a tight loop. This infinite loop could happen when `snap_usedef()` called during trace recording (more precisely, on the creation of the snapshot for the guarded trace check) processes UCLO bytecode instruction, and this instruction attempts a jump back with a negative offset value. The patch fixes the problem by checking a number of slots in a jump argument and replacing this value by `maxslot` if a value is negative, this means that no values will be purged from the snapshot. Sergey Bronnikov: * added the description and the test for the problem Part of tarantool/tarantool#10709 Reviewed-by: Sergey Kaplun <skaplun@tarantool.org> Signed-off-by: Sergey Kaplun <skaplun@tarantool.org>
5692 of 6031 branches covered (94.38%)
Branch coverage included in aggregate %.
21695 of 23432 relevant lines covered (92.59%)
2948761.45 hits per line
| Lines | Coverage | ∆ | File |
|---|---|---|---|
| 1 |
87.74 |
-0.08% | src/lj_crecord.c |
| 1 |
97.42 |
-0.18% | src/lj_trace.c |
| 2 |
91.98 |
-0.45% | src/luajit.c |
| 2 |
99.16 |
-0.34% | src/lj_gc.c |
| 10 |
77.8 |
-1.01% | src/lj_api.c |
| ID | Job ID | Ran | Files | Coverage | |
|---|---|---|---|---|---|
| 1 | 12890351666.1 | 89 |
92.95 |
GitHub Action Run |
| Coverage | ∆ | File | Lines | Relevant | Covered | Missed | Hits/Line | Branch Hits | Branch Misses |
|---|