Skip to content

Commit 32f3d54

Browse files
First implementation of Rule 22-3-1
1 parent 33bc0b1 commit 32f3d54

File tree

28 files changed

+546
-2
lines changed

28 files changed

+546
-2
lines changed

c/cert/src/codeql-pack.lock.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
---
22
lockVersion: 1.0.0
33
dependencies:
4+
advanced-security/qtil:
5+
version: 0.0.3
46
codeql/cpp-all:
57
version: 4.0.3
68
codeql/dataflow:

c/cert/test/codeql-pack.lock.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
---
22
lockVersion: 1.0.0
33
dependencies:
4+
advanced-security/qtil:
5+
version: 0.0.3
46
codeql/cpp-all:
57
version: 4.0.3
68
codeql/dataflow:

c/common/src/codeql-pack.lock.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
---
22
lockVersion: 1.0.0
33
dependencies:
4+
advanced-security/qtil:
5+
version: 0.0.3
46
codeql/cpp-all:
57
version: 4.0.3
68
codeql/dataflow:

c/common/test/codeql-pack.lock.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
---
22
lockVersion: 1.0.0
33
dependencies:
4+
advanced-security/qtil:
5+
version: 0.0.3
46
codeql/cpp-all:
57
version: 4.0.3
68
codeql/dataflow:

cpp/autosar/src/codeql-pack.lock.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
---
22
lockVersion: 1.0.0
33
dependencies:
4+
advanced-security/qtil:
5+
version: 0.0.3
46
codeql/cpp-all:
57
version: 4.0.3
68
codeql/dataflow:

cpp/autosar/test/codeql-pack.lock.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
---
22
lockVersion: 1.0.0
33
dependencies:
4+
advanced-security/qtil:
5+
version: 0.0.3
46
codeql/cpp-all:
57
version: 4.0.3
68
codeql/dataflow:

cpp/cert/src/codeql-pack.lock.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
---
22
lockVersion: 1.0.0
33
dependencies:
4+
advanced-security/qtil:
5+
version: 0.0.3
46
codeql/cpp-all:
57
version: 4.0.3
68
codeql/dataflow:

cpp/cert/test/codeql-pack.lock.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
---
22
lockVersion: 1.0.0
33
dependencies:
4+
advanced-security/qtil:
5+
version: 0.0.3
46
codeql/cpp-all:
57
version: 4.0.3
68
codeql/dataflow:

cpp/common/src/codeql-pack.lock.yml

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,8 @@
11
---
22
lockVersion: 1.0.0
33
dependencies:
4+
advanced-security/qtil:
5+
version: 0.0.3
46
codeql/cpp-all:
57
version: 4.0.3
68
codeql/dataflow:
Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
import cpp
2+
import codeql.util.Boolean
3+
4+
/**
5+
* Any type of conditional evaluation, such as if statements, and conditional expressions.
6+
*
7+
* A condition may be:
8+
* - An if statement condition
9+
* - A conditional expression (ternary) condition
10+
* - A short-circuiting logical expression (&& or ||)
11+
*/
12+
class Conditional extends Element {
13+
Expr condition;
14+
15+
Conditional() {
16+
condition = this.(ConditionalExpr).getCondition()
17+
or
18+
condition = this.(IfStmt).getCondition()
19+
or
20+
condition = this.(LogicalOrExpr).getLeftOperand()
21+
or
22+
condition = this.(LogicalAndExpr).getLeftOperand()
23+
}
24+
25+
/**
26+
* Get the expression that controls the flow of this conditional.
27+
*/
28+
Expr getCondition() { result = condition }
29+
}

0 commit comments

Comments
 (0)