Skip to content

Commit ac5ec06

Browse files
committed
Rust: Constrain SensitiveFieldAccess to avoid including unwanted parents.
1 parent b907cfe commit ac5ec06

File tree

1 file changed

+5
-1
lines changed

1 file changed

+5
-1
lines changed

rust/ql/lib/codeql/rust/security/SensitiveData.qll

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -112,14 +112,18 @@ private class SensitiveVariableAccess extends SensitiveData {
112112
override SensitiveDataClassification getClassification() { result = classification }
113113
}
114114

115+
Expr fieldExprParentField(FieldExpr fe) {
116+
result = fe.getParentNode()
117+
}
118+
115119
/**
116120
* A field access data flow node that might be sensitive data.
117121
*/
118122
private class SensitiveFieldAccess extends SensitiveData {
119123
SensitiveDataClassification classification;
120124

121125
SensitiveFieldAccess() {
122-
exists(FieldExpr fe | fe.getParentNode*() = this.asExpr().getAstNode() |
126+
exists(FieldExpr fe | fieldExprParentField*(fe) = this.asExpr().getAstNode() |
123127
HeuristicNames::nameIndicatesSensitiveData(fe.getIdentifier().getText(), classification)
124128
)
125129
}

0 commit comments

Comments
 (0)