Skip to content

Commit e78e2ac

Browse files
committed
Get rid of (get)regexMethod
1 parent 18ce257 commit e78e2ac

File tree

3 files changed

+4
-22
lines changed

3 files changed

+4
-22
lines changed

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

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,6 @@ module RegexExecution {
2525
*/
2626
abstract class Range extends DataFlow::Node {
2727
abstract DataFlow::Node getRegexNode();
28-
29-
abstract DataFlow::CallCfgNode getRegexMethod();
3028
}
3129
}
3230

@@ -42,8 +40,6 @@ class RegexExecution extends DataFlow::Node {
4240
RegexExecution() { this = range }
4341

4442
DataFlow::Node getRegexNode() { result = range.getRegexNode() }
45-
46-
DataFlow::CallCfgNode getRegexMethod() { result = range.getRegexMethod() }
4743
}
4844

4945
/** Provides classes for modeling Regular Expression escape-related APIs. */
@@ -56,8 +52,6 @@ module RegexEscape {
5652
*/
5753
abstract class Range extends DataFlow::Node {
5854
abstract DataFlow::Node getRegexNode();
59-
60-
abstract DataFlow::CallCfgNode getEscapeMethod();
6155
}
6256
}
6357

@@ -73,6 +67,4 @@ class RegexEscape extends DataFlow::Node {
7367
RegexEscape() { this = range }
7468

7569
DataFlow::Node getRegexNode() { result = range.getRegexNode() }
76-
77-
DataFlow::CallCfgNode getEscapeMethod() { result = range.getEscapeMethod() }
7870
}

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

Lines changed: 3 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -26,14 +26,10 @@ private module Re {
2626
DirectRegex() {
2727
// this.getLocation().getFile().getBaseName().regexpMatch("^re_(good|bad)\\.py$") and // debug
2828
this = API::moduleImport("re").getMember(any(ReMethods m)).getACall() and
29-
regexNode = this.getArg(0) and
30-
regexMethod = this
29+
regexNode = this.getArg(0)
3130
}
3231

3332
override DataFlow::Node getRegexNode() { result = regexNode }
34-
35-
// pending obj.this discussion
36-
override DataFlow::CallCfgNode getRegexMethod() { result = regexMethod }
3733
}
3834

3935
private class CompiledRegex extends DataFlow::CallCfgNode, RegexExecution::Range {
@@ -47,14 +43,11 @@ private module Re {
4743
patternCall = API::moduleImport("re").getMember("compile").getACall() and
4844
patternCall = reMethod.getObject().getALocalSource() and
4945
reMethod.getAttributeName() instanceof ReMethods and
50-
regexNode = patternCall.getArg(0) and
51-
regexMethod = this
46+
regexNode = patternCall.getArg(0)
5247
)
5348
}
5449

5550
override DataFlow::Node getRegexNode() { result = regexNode }
56-
57-
override DataFlow::CallCfgNode getRegexMethod() { result = regexMethod }
5851
}
5952

6053
class ReEscape extends DataFlow::CallCfgNode, RegexEscape::Range {
@@ -63,12 +56,9 @@ private module Re {
6356

6457
ReEscape() {
6558
this = API::moduleImport("re").getMember("escape").getACall() and
66-
regexNode = this.getArg(0) and
67-
escapeMethod = this
59+
regexNode = this.getArg(0)
6860
}
6961

7062
override DataFlow::Node getRegexNode() { result = regexNode }
71-
72-
override DataFlow::CallCfgNode getEscapeMethod() { result = escapeMethod }
7363
}
7464
}

python/ql/src/experimental/semmle/python/security/injection/RegexInjection.qll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ class RegexInjectionSink extends DataFlow::Node {
1515
RegexInjectionSink() {
1616
exists(RegexExecution reExec |
1717
this = reExec.getRegexNode() and
18-
regexMethod = reExec.getRegexMethod().getFunction().asExpr().(Attribute)
18+
regexMethod = reExec.asExpr().(Attribute)
1919
)
2020
}
2121

0 commit comments

Comments
 (0)