Skip to content

Commit 7e90728

Browse files
authored
Merge pull request #1679 from aschackmull/java/reader-taint
Java: Adjust taint steps for Reader::read.
2 parents f60af2c + 4ffc412 commit 7e90728

File tree

1 file changed

+10
-2
lines changed

1 file changed

+10
-2
lines changed

java/ql/src/semmle/code/java/dataflow/TaintTracking.qll

Lines changed: 10 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -363,6 +363,10 @@ module TaintTracking {
363363
m.getDeclaringType().hasQualifiedName("java.io", "InputStream") and
364364
m.hasName("read") and
365365
arg = 0
366+
or
367+
m.getDeclaringType().getASupertype*().hasQualifiedName("java.io", "Reader") and
368+
m.hasName("read") and
369+
arg = 0
366370
}
367371

368372
/** Access to a method that passes taint from the qualifier. */
@@ -398,8 +402,12 @@ module TaintTracking {
398402
m.getName().matches("%Value")
399403
)
400404
or
401-
m.getDeclaringType().getQualifiedName().matches("%Reader") and
402-
m.getName().matches("read%")
405+
m.getDeclaringType().getASupertype*().hasQualifiedName("java.io", "Reader") and
406+
(
407+
m.getName() = "read" and m.getNumberOfParameters() = 0
408+
or
409+
m.getName() = "readLine"
410+
)
403411
or
404412
m.getDeclaringType().getQualifiedName().matches("%StringWriter") and
405413
m.getName() = "toString"

0 commit comments

Comments
 (0)