Skip to content

Commit e137993

Browse files
authored
Merge pull request #12061 from d10c/cpp/missing-check-scanf-join-order-fix
2 parents d671cc6 + 1df0be3 commit e137993

File tree

1 file changed

+3
-3
lines changed

1 file changed

+3
-3
lines changed

cpp/ql/src/Critical/MissingCheckScanf.ql

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -100,7 +100,7 @@ private predicate fwdFlow(Instruction instr, ValueNumber vn) {
100100
*/
101101
pragma[nomagic]
102102
predicate revFlow(Instruction instr, ValueNumber vn) {
103-
fwdFlow(instr, vn) and
103+
fwdFlow(instr, pragma[only_bind_out](vn)) and
104104
(
105105
isSink(instr, _, vn)
106106
or
@@ -126,7 +126,7 @@ class Node extends MkNode {
126126

127127
final string toString() { result = instr.toString() }
128128

129-
final Node getASuccessor() { result = MkNode(instr.getASuccessor(), vn) }
129+
final Node getASuccessor() { result = MkNode(pragma[only_bind_out](instr.getASuccessor()), vn) }
130130

131131
final Location getLocation() { result = instr.getLocation() }
132132
}
@@ -167,7 +167,7 @@ predicate hasFlow(
167167
) {
168168
exists(ValueNumber vn |
169169
isSource(call, index, source, vn, _) and
170-
hasFlow(getNode(source, vn), getNode(sink, vn)) and
170+
hasFlow(getNode(source, pragma[only_bind_into](vn)), getNode(sink, pragma[only_bind_into](vn))) and
171171
isSink(sink, access, vn)
172172
)
173173
}

0 commit comments

Comments
 (0)