Skip to content

Commit be1d756

Browse files
committed
Rust: Call refactor follow-up fixes
1 parent 8b89e15 commit be1d756

File tree

3 files changed

+2
-18
lines changed

3 files changed

+2
-18
lines changed

rust/ql/lib/codeql/rust/elements/internal/CallExprImpl.qll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ module Impl {
9595
* layer, we do not check that the resolved target is a method in the charpred,
9696
* instead we check this in `getPositionalArgument` and `getReceiver`.
9797
*/
98-
class CallExprMethodCall extends CallImpl::MethodCall instanceof CallExprCall {
98+
class CallExprMethodCall extends CallImpl::MethodCall, CallExprCall {
9999
CallExprMethodCall() { not this instanceof DynamicCallExpr }
100100

101101
private predicate isInFactMethodCall() { this.getResolvedTarget() instanceof Method }

rust/ql/lib/codeql/rust/elements/internal/OperationImpl.qll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,7 @@ module Impl {
140140
private class OperationMethodCall extends CallImpl::MethodCall instanceof Operation {
141141
OperationMethodCall() { super.isOverloaded(_, _, _) }
142142

143-
override Expr getPositionalArgument(int i) { result = super.getOperand(i + 1) }
143+
override Expr getPositionalArgument(int i) { result = super.getOperand(i + 1) and i >= 0 }
144144

145145
override Expr getReceiver() { result = super.getOperand(0) }
146146
}

rust/ql/test/library-tests/dataflow/sources/net/InlineFlow.expected

Lines changed: 0 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -183,11 +183,7 @@ edges
183183
| test.rs:389:61:389:66 | [post] buffer | test.rs:392:23:392:33 | buffer[...] | provenance | |
184184
| test.rs:391:23:391:28 | buffer | test.rs:391:22:391:28 | &buffer | provenance | |
185185
| test.rs:392:23:392:33 | buffer[...] | test.rs:392:22:392:33 | &... | provenance | |
186-
| test.rs:399:63:399:73 | &mut reader [&ref] | test.rs:399:63:399:73 | [post] &mut reader [&ref] | provenance | MaD:13 |
187186
| test.rs:399:63:399:73 | &mut reader [&ref] | test.rs:399:76:399:87 | [post] &mut buffer1 [&ref] | provenance | MaD:13 |
188-
| test.rs:399:63:399:73 | [post] &mut reader [&ref] | test.rs:399:68:399:73 | [post] reader | provenance | |
189-
| test.rs:399:68:399:73 | [post] reader | test.rs:403:31:403:36 | reader | provenance | |
190-
| test.rs:399:68:399:73 | [post] reader | test.rs:408:55:408:60 | reader | provenance | |
191187
| test.rs:399:68:399:73 | reader | test.rs:399:63:399:73 | &mut reader [&ref] | provenance | |
192188
| test.rs:399:76:399:87 | [post] &mut buffer1 [&ref] | test.rs:399:81:399:87 | [post] buffer1 | provenance | |
193189
| test.rs:399:81:399:87 | [post] buffer1 | test.rs:400:19:400:40 | buffer1[...] | provenance | |
@@ -261,15 +257,7 @@ edges
261257
| test.rs:447:61:447:66 | [post] buffer | test.rs:450:23:450:33 | buffer[...] | provenance | |
262258
| test.rs:448:19:448:24 | buffer | test.rs:448:18:448:24 | &buffer | provenance | |
263259
| test.rs:450:23:450:33 | buffer[...] | test.rs:450:22:450:33 | &... | provenance | |
264-
| test.rs:457:63:457:74 | &mut reader2 [&ref] | test.rs:457:63:457:74 | [post] &mut reader2 [&ref] | provenance | MaD:13 |
265260
| test.rs:457:63:457:74 | &mut reader2 [&ref] | test.rs:457:77:457:88 | [post] &mut buffer1 [&ref] | provenance | MaD:13 |
266-
| test.rs:457:63:457:74 | [post] &mut reader2 [&ref] | test.rs:457:68:457:74 | [post] reader2 | provenance | |
267-
| test.rs:457:68:457:74 | [post] reader2 | test.rs:461:31:461:37 | reader2 | provenance | |
268-
| test.rs:457:68:457:74 | [post] reader2 | test.rs:467:44:467:50 | reader2 | provenance | |
269-
| test.rs:457:68:457:74 | [post] reader2 | test.rs:479:26:479:32 | reader2 | provenance | |
270-
| test.rs:457:68:457:74 | [post] reader2 | test.rs:486:31:486:37 | reader2 | provenance | |
271-
| test.rs:457:68:457:74 | [post] reader2 | test.rs:493:31:493:37 | reader2 | provenance | |
272-
| test.rs:457:68:457:74 | [post] reader2 | test.rs:500:31:500:37 | reader2 | provenance | |
273261
| test.rs:457:68:457:74 | reader2 | test.rs:457:63:457:74 | &mut reader2 [&ref] | provenance | |
274262
| test.rs:457:77:457:88 | [post] &mut buffer1 [&ref] | test.rs:457:82:457:88 | [post] buffer1 | provenance | |
275263
| test.rs:457:82:457:88 | [post] buffer1 | test.rs:458:19:458:40 | buffer1[...] | provenance | |
@@ -473,8 +461,6 @@ nodes
473461
| test.rs:392:22:392:33 | &... | semmle.label | &... |
474462
| test.rs:392:23:392:33 | buffer[...] | semmle.label | buffer[...] |
475463
| test.rs:399:63:399:73 | &mut reader [&ref] | semmle.label | &mut reader [&ref] |
476-
| test.rs:399:63:399:73 | [post] &mut reader [&ref] | semmle.label | [post] &mut reader [&ref] |
477-
| test.rs:399:68:399:73 | [post] reader | semmle.label | [post] reader |
478464
| test.rs:399:68:399:73 | reader | semmle.label | reader |
479465
| test.rs:399:76:399:87 | [post] &mut buffer1 [&ref] | semmle.label | [post] &mut buffer1 [&ref] |
480466
| test.rs:399:81:399:87 | [post] buffer1 | semmle.label | [post] buffer1 |
@@ -543,8 +529,6 @@ nodes
543529
| test.rs:450:22:450:33 | &... | semmle.label | &... |
544530
| test.rs:450:23:450:33 | buffer[...] | semmle.label | buffer[...] |
545531
| test.rs:457:63:457:74 | &mut reader2 [&ref] | semmle.label | &mut reader2 [&ref] |
546-
| test.rs:457:63:457:74 | [post] &mut reader2 [&ref] | semmle.label | [post] &mut reader2 [&ref] |
547-
| test.rs:457:68:457:74 | [post] reader2 | semmle.label | [post] reader2 |
548532
| test.rs:457:68:457:74 | reader2 | semmle.label | reader2 |
549533
| test.rs:457:77:457:88 | [post] &mut buffer1 [&ref] | semmle.label | [post] &mut buffer1 [&ref] |
550534
| test.rs:457:82:457:88 | [post] buffer1 | semmle.label | [post] buffer1 |

0 commit comments

Comments
 (0)