Skip to content

Commit 35f1c45

Browse files
committed
Change from Attribute to DataFlow::CallCfgNode in getRegexMethod()
1 parent c127b10 commit 35f1c45

2 files changed

Lines changed: 12 additions & 12 deletions

File tree

python/ql/src/experimental/semmle/python/Concepts.qll

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ module RegexExecution {
2626
abstract class Range extends DataFlow::Node {
2727
abstract DataFlow::Node getRegexNode();
2828

29-
abstract Attribute getRegexMethod();
29+
abstract DataFlow::CallCfgNode getRegexMethod();
3030
}
3131
}
3232

@@ -43,7 +43,7 @@ class RegexExecution extends DataFlow::Node {
4343

4444
DataFlow::Node getRegexNode() { result = range.getRegexNode() }
4545

46-
Attribute getRegexMethod() { result = range.getRegexMethod() }
46+
DataFlow::CallCfgNode getRegexMethod() { result = range.getRegexMethod() }
4747
}
4848

4949
/** Provides classes for modeling Regular Expression escape-related APIs. */
@@ -57,7 +57,7 @@ module RegexEscape {
5757
abstract class Range extends DataFlow::Node {
5858
abstract DataFlow::Node getRegexNode();
5959

60-
abstract Attribute getEscapeMethod();
60+
abstract DataFlow::CallCfgNode getEscapeMethod();
6161
}
6262
}
6363

@@ -74,5 +74,5 @@ class RegexEscape extends DataFlow::Node {
7474

7575
DataFlow::Node getRegexNode() { result = range.getRegexNode() }
7676

77-
Attribute getEscapeMethod() { result = range.getEscapeMethod() }
77+
DataFlow::CallCfgNode getEscapeMethod() { result = range.getEscapeMethod() }
7878
}

python/ql/src/experimental/semmle/python/frameworks/Stdlib.qll

Lines changed: 8 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -21,22 +21,22 @@ private module Re {
2121

2222
private class DirectRegex extends DataFlow::CallCfgNode, RegexExecution::Range {
2323
DataFlow::Node regexNode;
24-
Attribute regexMethod;
24+
DataFlow::CallCfgNode regexMethod;
2525

2626
DirectRegex() {
2727
this = API::moduleImport("re").getMember(any(ReMethods m)).getACall() and
2828
regexNode = this.getArg(0) and
29-
regexMethod = this.asExpr().(Attribute)
29+
regexMethod = this
3030
}
3131

3232
override DataFlow::Node getRegexNode() { result = regexNode }
3333

34-
override Attribute getRegexMethod() { result = regexMethod }
34+
override DataFlow::CallCfgNode getRegexMethod() { result = regexMethod }
3535
}
3636

3737
private class CompiledRegex extends DataFlow::CallCfgNode, RegexExecution::Range {
3838
DataFlow::Node regexNode;
39-
Attribute regexMethod;
39+
DataFlow::CallCfgNode regexMethod;
4040

4141
CompiledRegex() {
4242
exists(DataFlow::CallCfgNode patternCall, DirectRegex reMethod |
@@ -51,21 +51,21 @@ private module Re {
5151

5252
override DataFlow::Node getRegexNode() { result = regexNode }
5353

54-
override Attribute getRegexMethod() { result = regexMethod }
54+
override DataFlow::CallCfgNode getRegexMethod() { result = regexMethod }
5555
}
5656

5757
class ReEscape extends DataFlow::CallCfgNode, RegexEscape::Range {
5858
DataFlow::Node regexNode;
59-
Attribute escapeMethod;
59+
DataFlow::CallCfgNode escapeMethod;
6060

6161
ReEscape() {
6262
this = API::moduleImport("re").getMember("escape").getACall() and
6363
regexNode = this.getArg(0) and
64-
escapeMethod = this.asExpr().(Attribute)
64+
escapeMethod = this
6565
}
6666

6767
override DataFlow::Node getRegexNode() { result = regexNode }
6868

69-
override Attribute getEscapeMethod() { result = escapeMethod }
69+
override DataFlow::CallCfgNode getEscapeMethod() { result = escapeMethod }
7070
}
7171
}

0 commit comments

Comments
 (0)