Skip to content

Commit efa323c

Browse files
committed
rb/overly-permissive-file use QL bitwise operators
1 parent 46a14b2 commit efa323c

1 file changed

Lines changed: 5 additions & 4 deletions

File tree

ql/src/queries/security/cwe-732/WeakFilePermissions.ql

Lines changed: 5 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -29,16 +29,17 @@ class FileModuleAccess extends Expr {
2929
}
3030

3131
bindingset[p]
32-
int world_permission(int p) { result = p % 8 }
32+
int world_permission(int p) { result = p.bitAnd(7) }
3333

3434
bindingset[p]
35-
int group_permission(int p) { result = (p / 8) % 8 }
35+
// 70 oct = 56 dec
36+
int group_permission(int p) { result = p.bitAnd(56) }
3637

3738
bindingset[p]
3839
string access(int p) {
39-
p % 4 >= 2 and result = "writable"
40+
p.bitAnd(2) != 0 and result = "writable"
4041
or
41-
p % 8 in [4, 5] and result = "readable"
42+
p.bitAnd(2) = 0 and p.bitAnd(4) != 0 and result = "readable"
4243
}
4344

4445
/** An expression specifing a file permission that allows group/others read or write access */

0 commit comments

Comments
 (0)