Skip to content

Commit 990c40c

Browse files
committed
Swift: Barrier for duplicate results in constant queries, resulting from sources like [1, 2, 3].
1 parent 6108f78 commit 990c40c

File tree

6 files changed

+20
-377
lines changed

6 files changed

+20
-377
lines changed

swift/ql/lib/codeql/swift/security/ConstantPasswordQuery.qll

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,11 @@ module ConstantPasswordConfig implements DataFlow::ConfigSig {
3030

3131
predicate isBarrier(DataFlow::Node node) { node instanceof ConstantPasswordBarrier }
3232

33+
predicate isBarrierIn(DataFlow::Node node) {
34+
// make sources barriers so that we only report the closest instance
35+
isSource(node)
36+
}
37+
3338
predicate isAdditionalFlowStep(DataFlow::Node nodeFrom, DataFlow::Node nodeTo) {
3439
any(ConstantPasswordAdditionalFlowStep s).step(nodeFrom, nodeTo)
3540
}

swift/ql/lib/codeql/swift/security/ConstantSaltQuery.qll

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -31,6 +31,11 @@ module ConstantSaltConfig implements DataFlow::ConfigSig {
3131

3232
predicate isBarrier(DataFlow::Node node) { node instanceof ConstantSaltBarrier }
3333

34+
predicate isBarrierIn(DataFlow::Node node) {
35+
// make sources barriers so that we only report the closest instance
36+
isSource(node)
37+
}
38+
3439
predicate isAdditionalFlowStep(DataFlow::Node nodeFrom, DataFlow::Node nodeTo) {
3540
any(ConstantSaltAdditionalFlowStep s).step(nodeFrom, nodeTo)
3641
}

swift/ql/lib/codeql/swift/security/HardcodedEncryptionKeyQuery.qll

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,11 @@ module HardcodedKeyConfig implements DataFlow::ConfigSig {
3838

3939
predicate isBarrier(DataFlow::Node node) { node instanceof HardcodedEncryptionKeyBarrier }
4040

41+
predicate isBarrierIn(DataFlow::Node node) {
42+
// make sources barriers so that we only report the closest instance
43+
isSource(node)
44+
}
45+
4146
predicate isAdditionalFlowStep(DataFlow::Node nodeFrom, DataFlow::Node nodeTo) {
4247
any(HardcodedEncryptionKeyAdditionalFlowStep s).step(nodeFrom, nodeTo)
4348
}

swift/ql/lib/codeql/swift/security/StaticInitializationVectorQuery.qll

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -32,6 +32,11 @@ module StaticInitializationVectorConfig implements DataFlow::ConfigSig {
3232

3333
predicate isBarrier(DataFlow::Node node) { node instanceof StaticInitializationVectorBarrier }
3434

35+
predicate isBarrierIn(DataFlow::Node node) {
36+
// make sources barriers so that we only report the closest instance
37+
isSource(node)
38+
}
39+
3540
predicate isAdditionalFlowStep(DataFlow::Node nodeFrom, DataFlow::Node nodeTo) {
3641
any(StaticInitializationVectorAdditionalFlowStep s).step(nodeFrom, nodeTo)
3742
}

0 commit comments

Comments
 (0)