| FazBrowse GitHub Viewer | Trending | | Home |
| Tools: [Download Repo ZIP] [Original HTTPS Page] |
1 parent f2e943f commit 164cf27
1 file changed
| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
@@ -3,34 +3,45 @@ | |||
| 3 | 3 | private import python | |
| 4 | 4 | private import semmle.python.dataflow.new.DataFlow | |
| 5 | 5 | ||
| 6 | - private predicate stringConstCompare(DataFlow::GuardNode g, ControlFlowNode node, boolean branch) { | ||
| 6 | + private predicate constCompare(DataFlow::GuardNode g, ControlFlowNode node, boolean branch) { | ||
| 7 | 7 | exists(CompareNode cn | cn = g | | |
| 8 | - exists(StringLiteral str_const, Cmpop op | | ||
| 8 | + exists(ImmutableLiteral const, Cmpop op | | ||
| 9 | 9 | op = any(Eq eq) and branch = true | |
| 10 | 10 | or | |
| 11 | 11 | op = any(NotEq ne) and branch = false | |
| 12 | 12 | | | |
| 13 | - cn.operands(str_const.getAFlowNode(), op, node) | ||
| 13 | + cn.operands(const.getAFlowNode(), op, node) | ||
| 14 | 14 | or | |
| 15 | - cn.operands(node, op, str_const.getAFlowNode()) | ||
| 15 | + cn.operands(node, op, const.getAFlowNode()) | ||
| 16 | 16 | ) | |
| 17 | 17 | or | |
| 18 | - exists(IterableNode str_const_iterable, Cmpop op | | ||
| 18 | + exists(NameConstant const, Cmpop op | | ||
| 19 | + op = any(Is is_) and branch = true | ||
| 20 | + or | ||
| 21 | + op = any(IsNot isn) and branch = false | ||
| 22 | + | | ||
| 23 | + cn.operands(const.getAFlowNode(), op, node) | ||
| 24 | + or | ||
| 25 | + cn.operands(node, op, const.getAFlowNode()) | ||
| 26 | + ) | ||
| 27 | + or | ||
| 28 | + exists(IterableNode const_iterable, Cmpop op | | ||
| 19 | 29 | op = any(In in_) and branch = true | |
| 20 | 30 | or | |
| 21 | 31 | op = any(NotIn ni) and branch = false | |
| 22 | 32 | | | |
| 23 | - forall(ControlFlowNode elem | elem = str_const_iterable.getAnElement() | | ||
| 24 | - elem.getNode() instanceof StringLiteral | ||
| 33 | + forall(ControlFlowNode elem | elem = const_iterable.getAnElement() | | ||
| 34 | + elem.getNode() instanceof ImmutableLiteral | ||
| 25 | 35 | ) and | |
| 26 | - cn.operands(node, op, str_const_iterable) | ||
| 36 | + cn.operands(node, op, const_iterable) | ||
| 27 | 37 | ) | |
| 28 | 38 | ) | |
| 29 | 39 | } | |
| 30 | 40 | ||
| 31 | - /** A validation of unknown node by comparing with a constant string value. */ | ||
| 32 | - class StringConstCompareBarrier extends DataFlow::Node { | ||
| 33 | - StringConstCompareBarrier() { | ||
| 34 | - this = DataFlow::BarrierGuard<stringConstCompare/3>::getABarrierNode() | ||
| 35 | - } | ||
| 41 | + /** A validation of unknown node by comparing with a constant value. */ | ||
| 42 | + class ConstCompareBarrier extends DataFlow::Node { | ||
| 43 | + ConstCompareBarrier() { this = DataFlow::BarrierGuard<constCompare/3>::getABarrierNode() } | ||
| 36 | 44 | } | |
| 45 | + | ||
| 46 | + /** DEPRECATED: Use ConstCompareBarrier instead. */ | ||
| 47 | + deprecated class StringConstCompareBarrier = ConstCompareBarrier; | ||
| Back | FazBrowse Home | New Git URL |
0 commit comments