Skip to content

Commit c17ae3a

Browse files
committed
C++: Correct dataflow for return (*this).
1 parent f1a9547 commit c17ae3a

File tree

1 file changed

+6
-6
lines changed

1 file changed

+6
-6
lines changed

cpp/ql/src/semmle/code/cpp/models/implementations/StdString.qll

Lines changed: 6 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -305,8 +305,8 @@ class StdIStreamIn extends DataFlowFunction, TaintFunction {
305305
StdIStreamIn() { this.hasQualifiedName("std", "basic_istream", "operator>>") }
306306

307307
override predicate hasDataFlow(FunctionInput input, FunctionOutput output) {
308-
// flow from qualifier to return value
309-
input.isQualifierObject() and
308+
// returns reference to `*this`
309+
input.isQualifierAddress() and
310310
output.isReturnValue()
311311
}
312312

@@ -374,8 +374,8 @@ class StdIStreamRead extends DataFlowFunction, TaintFunction {
374374
}
375375

376376
override predicate hasDataFlow(FunctionInput input, FunctionOutput output) {
377-
// flow from qualifier to return value
378-
input.isQualifierObject() and
377+
// returns reference to `*this`
378+
input.isQualifierAddress() and
379379
output.isReturnValue()
380380
}
381381

@@ -410,7 +410,7 @@ class StdIStreamPutBack extends DataFlowFunction, TaintFunction {
410410
StdIStreamPutBack() { this.hasQualifiedName("std", "basic_istream", "putback") }
411411

412412
override predicate hasDataFlow(FunctionInput input, FunctionOutput output) {
413-
// flow from qualifier to return value
413+
// returns reference to `*this`
414414
input.isQualifierAddress() and
415415
output.isReturnValue()
416416
}
@@ -451,7 +451,7 @@ class StdOStreamOut extends DataFlowFunction, TaintFunction {
451451
StdOStreamOut() { this.hasQualifiedName("std", "basic_ostream", ["operator<<", "put", "write"]) }
452452

453453
override predicate hasDataFlow(FunctionInput input, FunctionOutput output) {
454-
// flow from qualifier to return value
454+
// returns reference to `*this`
455455
input.isQualifierAddress() and
456456
output.isReturnValue()
457457
}

0 commit comments

Comments
 (0)