Merge pull request #11286 from tamasvajk/kotlin-resource-leak

Kotlin: Exclude .kt files from resource leak queries
This commit is contained in:
Tamás Vajk
2022-11-16 13:55:12 +01:00
committed by GitHub
9 changed files with 57 additions and 0 deletions

View File

@@ -33,6 +33,7 @@ predicate safeReaderType(RefType t) {
from ClassInstanceExpr cie, RefType t
where
cie.getFile().isJavaSourceFile() and
badCloseableInit(cie) and
cie.getType() = t and
readerType(t) and

View File

@@ -15,6 +15,7 @@ import CloseType
from CloseableInitExpr cie, RefType t
where
cie.getFile().isJavaSourceFile() and
badCloseableInit(cie) and
cie.getType() = t and
sqlType(t) and

View File

@@ -29,6 +29,7 @@ predicate safeWriterType(RefType t) {
from ClassInstanceExpr cie, RefType t
where
cie.getFile().isJavaSourceFile() and
badCloseableInit(cie) and
cie.getType() = t and
writerType(t) and

View File

@@ -0,0 +1,7 @@
import java.io.*
fun test0() {
BufferedReader(FileReader("C:\\test.txt")).use { bw ->
bw.readLine()
}
}

View File

@@ -0,0 +1 @@
Likely Bugs/Resource Leaks/CloseReader.ql

View File

@@ -0,0 +1,45 @@
import java.io.*
fun test0() {
val bw = BufferedWriter(FileWriter("C:\\test.txt"))
bw.write("test")
}
fun test1() {
BufferedWriter(FileWriter("C:\\test.txt")).use { bw ->
bw.write("test")
}
}
fun test2() {
val bw = FileOutputStream(File.createTempFile("","")).bufferedWriter()
bw.write("test")
}
fun test3() {
FileOutputStream(File.createTempFile("","")).bufferedWriter().use { bw ->
bw.write("test")
}
}
fun test4() {
val bw = OutputStreamWriter(FileOutputStream(File.createTempFile("",""))).buffered()
bw.write("test")
}
fun test5() {
OutputStreamWriter(FileOutputStream(File.createTempFile("",""))).buffered().use { bw ->
bw.write("test")
}
}
fun test6() {
val bw = OutputStreamWriter(FileOutputStream(File.createTempFile("","")))
bw.write("test")
}
fun test7() {
OutputStreamWriter(FileOutputStream(File.createTempFile("",""))).use { bw ->
bw.write("test")
}
}

View File

@@ -0,0 +1 @@
Likely Bugs/Resource Leaks/CloseWriter.ql