push
github
Reject negative getfenv()/setfenv() levels to prevent compiler warning. Thanks to Sergey Kaplun. (cherry picked from commit 9d777346b) When the number represented the level value is given to the `getfenv()`/`setfenv()`, it is cast to the `int`. Assume the given value is `2^31`, i.e. the resulting value after the cast is `INT_MIN`. After this, it will be decremented in `lj_debug_level()` and underflowed to the `INT_MAX`. That produces the UBSan warning about signed integer overflow. This patch raises the error early in the aforementioned functions, since a negative level value is meaningless. Sergey Kaplun: * added the description and the test for the problem Part of tarantool/tarantool#11055 Reviewed-by: Sergey Bronnikov <sergeyb@tarantool.org> Signed-off-by: Sergey Kaplun <skaplun@tarantool.org> (cherry picked from commit 45d7f251a)
5696 of 6035 branches covered (94.38%)
Branch coverage included in aggregate %.
4 of 4 new or added lines in 1 file covered. (100.0%)
28 existing lines in 8 files now uncovered.21702 of 23442 relevant lines covered (92.58%)
2962953.51 hits per line