Skip to content

Commit 4cac35a

Browse files
author
Benjamin Muskalla
committed
Regnerate model to capture char[] APIs
1 parent 857c277 commit 4cac35a

File tree

3 files changed

+33
-15
lines changed

3 files changed

+33
-15
lines changed

java/ql/lib/semmle/code/java/dataflow/ExternalFlow.qll

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -86,6 +86,7 @@ private module Frameworks {
8686
private import semmle.code.java.frameworks.ApacheHttp
8787
private import semmle.code.java.frameworks.apache.Collections
8888
private import semmle.code.java.frameworks.apache.IO
89+
private import semmle.code.java.frameworks.apache.IOCustom
8990
private import semmle.code.java.frameworks.apache.Lang
9091
private import semmle.code.java.frameworks.Flexjson
9192
private import semmle.code.java.frameworks.guava.Guava

java/ql/lib/semmle/code/java/frameworks/apache/IO.qll

Lines changed: 15 additions & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -1,17 +1,9 @@
1-
/** Definitions related to the Apache Commons IO library. */
1+
/** Definitions of taint steps in the IO framework */
22

33
import java
44
private import semmle.code.java.dataflow.ExternalFlow
55

6-
// TODO: manual models that were not generated yet
7-
private class ApacheCommonsIOCustomSummaryCsv extends SummaryModelCsv {
8-
override predicate row(string row) {
9-
row =
10-
["org.apache.commons.io;IOUtils;false;toBufferedInputStream;;;Argument[0];ReturnValue;taint"]
11-
}
12-
}
13-
14-
private class ApacheCommonsIOSinksCsv extends SinkModelCsv {
6+
private class IOSinksCsv extends SinkModelCsv {
157
override predicate row(string row) {
168
row =
179
[
@@ -112,13 +104,17 @@ private class ApacheCommonsIOSinksCsv extends SinkModelCsv {
112104
}
113105
}
114106

115-
private class ApacheCommonsIOSourcesCsv extends SourceModelCsv {
107+
private class IOSourcesCsv extends SourceModelCsv {
116108
override predicate row(string row) {
117-
row = ["org.apache.commons.io;IOUtils;true;toByteArray;(URL);;ReturnValue;remote"]
109+
row =
110+
[
111+
"org.apache.commons.io;IOUtils;true;resourceToByteArray;(String,ClassLoader);;ReturnValue;remote",
112+
"org.apache.commons.io;IOUtils;true;toByteArray;(URI);;ReturnValue;remote"
113+
]
118114
}
119115
}
120116

121-
private class ApacheCommonsIOSummaryCsv extends SummaryModelCsv {
117+
private class IOSummaryCsv extends SummaryModelCsv {
122118
override predicate row(string row) {
123119
row =
124120
[
@@ -540,6 +536,8 @@ private class ApacheCommonsIOSummaryCsv extends SummaryModelCsv {
540536
"org.apache.commons.io;CopyUtils;true;copy;(Reader,Writer);;Argument[0];Argument[1];taint",
541537
"org.apache.commons.io;CopyUtils;true;copy;(String,Writer);;Argument[0];Argument[1];taint",
542538
"org.apache.commons.io;CopyUtils;true;copy;(byte[],OutputStream);;Argument[0];Argument[1];taint",
539+
"org.apache.commons.io;CopyUtils;true;copy;(byte[],Writer);;Argument[0];Argument[1];taint",
540+
"org.apache.commons.io;CopyUtils;true;copy;(byte[],Writer,String);;Argument[0];Argument[1];taint",
543541
"org.apache.commons.io;DirectoryWalker$CancelException;true;CancelException;(File,int);;Argument[0];Argument[-1];taint",
544542
"org.apache.commons.io;DirectoryWalker$CancelException;true;CancelException;(String,File,int);;Argument[1];Argument[-1];taint",
545543
"org.apache.commons.io;DirectoryWalker$CancelException;true;getFile;();;Argument[-1];ReturnValue;taint",
@@ -634,9 +632,11 @@ private class ApacheCommonsIOSummaryCsv extends SummaryModelCsv {
634632
"org.apache.commons.io;IOUtils;true;toBufferedReader;(Reader,int);;Argument[0];ReturnValue;taint",
635633
"org.apache.commons.io;IOUtils;true;toByteArray;(InputStream,int);;Argument[0];ReturnValue;taint",
636634
"org.apache.commons.io;IOUtils;true;toByteArray;(InputStream,long);;Argument[0];ReturnValue;taint",
637-
"org.apache.commons.io;IOUtils;true;toByteArray;(Reader);;Argument[0];ReturnValue;taint",
638-
"org.apache.commons.io;IOUtils;true;toByteArray;(Reader,String);;Argument[0];ReturnValue;taint",
639635
"org.apache.commons.io;IOUtils;true;toByteArray;(String);;Argument[0];ReturnValue;taint",
636+
"org.apache.commons.io;IOUtils;true;toCharArray;(InputStream);;Argument[0];ReturnValue;taint",
637+
"org.apache.commons.io;IOUtils;true;toCharArray;(InputStream,Charset);;Argument[0];ReturnValue;taint",
638+
"org.apache.commons.io;IOUtils;true;toCharArray;(InputStream,String);;Argument[0];ReturnValue;taint",
639+
"org.apache.commons.io;IOUtils;true;toCharArray;(Reader);;Argument[0];ReturnValue;taint",
640640
"org.apache.commons.io;IOUtils;true;toInputStream;(CharSequence);;Argument[0];ReturnValue;taint",
641641
"org.apache.commons.io;IOUtils;true;toInputStream;(CharSequence,Charset);;Argument[0];ReturnValue;taint",
642642
"org.apache.commons.io;IOUtils;true;toInputStream;(CharSequence,String);;Argument[0];ReturnValue;taint",
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
/** Custom definitions related to the Apache Commons IO library. */
2+
3+
import java
4+
private import semmle.code.java.dataflow.ExternalFlow
5+
6+
// TODO: manual models that were not generated yet
7+
private class ApacheCommonsIOCustomSummaryCsv extends SummaryModelCsv {
8+
override predicate row(string row) {
9+
row =
10+
[
11+
"org.apache.commons.io;IOUtils;false;toBufferedInputStream;;;Argument[0];ReturnValue;taint",
12+
"org.apache.commons.io;IOUtils;true;writeLines;(Collection,String,Writer);;Argument[0];Argument[2];taint",
13+
"org.apache.commons.io;IOUtils;true;toByteArray;(Reader);;Argument[0];ReturnValue;taint",
14+
"org.apache.commons.io;IOUtils;true;toByteArray;(Reader,String);;Argument[0];ReturnValue;taint",
15+
]
16+
}
17+
}

0 commit comments

Comments
 (0)