|
Ran
|
Files
518
|
Run time
26s
|
Badge
README BADGES
|
push
github
box: fix misleading errors on privilege revoke from admin Trying to revoke privileges from an admin user or a super role results in misleading errors: ``` error: 'Tuple field 5 (privilege) type does not match one required by operation: expected unsigned, got integer' ``` The reason is that privileges use bit module for privilege grant/revoke, and this module operates 32-bit **signed** integers (see https://bitop.luajit.org/semantics.html#range for details). So any bit operation on a privilege set greater than 2^31 (for example, box.priv.ALL == 2^32 - 1) results in a negative number: ```lua tarantool> bit.band(box.priv.ALL, bit.bnot(box.priv.W)) --- - -3 ... ``` Fortunately, this can be fixed by casting one of the operands to a uint64_t type, so let's cast all granted or revoked privileges prior to calculating the resulting privilege set. Closes #11526 NO_DOC=bugfix (cherry picked from commit 8de5bae07)
70147 of 124033 branches covered (56.56%)
103228 of 117927 relevant lines covered (87.54%)
1597437.4 hits per line
| Coverage | ∆ | File | Lines | Relevant | Covered | Missed | Hits/Line | Branch Hits | Branch Misses |
|---|