Skip to content

Commit b7e608a

Browse files
author
Benjamin Muskalla
committed
Model string builder APIs
1 parent dab6262 commit b7e608a

File tree

2 files changed

+26
-1
lines changed

2 files changed

+26
-1
lines changed

java/ql/src/semmle/code/java/frameworks/Strings.qll

Lines changed: 13 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,19 @@ private class StringSummaryCsv extends SummaryModelCsv {
3636
"java.lang;String;false;trim;;;Argument[-1];ReturnValue;taint",
3737
"java.lang;String;false;valueOf;(char);;Argument[0];ReturnValue;taint",
3838
"java.lang;String;false;valueOf;(char[],int,int);;Argument[0];ReturnValue;taint",
39-
"java.lang;String;false;valueOf;(char[]);;Argument[0];ReturnValue;taint"
39+
"java.lang;String;false;valueOf;(char[]);;Argument[0];ReturnValue;taint",
40+
"java.io;StringWriter;true;append;;;Argument[0];Argument[-1];taint",
41+
"java.io;StringWriter;true;append;;;Argument[0];ReturnValue;taint",
42+
"java.io;StringWriter;true;write;;;Argument[0];Argument[-1];taint",
43+
"java.lang;AbstractStringBuilder;true;AbstractStringBuilder;(String);;Argument[0];Argument[-1];taint",
44+
"java.lang;AbstractStringBuilder;true;append;;;Argument[0];Argument[-1];taint",
45+
"java.lang;AbstractStringBuilder;true;append;;;Argument[-1];ReturnValue;taint",
46+
"java.lang;AbstractStringBuilder;true;insert;;;Argument[1];Argument[-1];taint",
47+
"java.lang;AbstractStringBuilder;true;insert;;;Argument[-1];ReturnValue;taint",
48+
"java.lang;AbstractStringBuilder;true;toString;;;Argument[-1];ReturnValue;taint",
49+
"java.lang;StringBuffer;true;StringBuffer;(CharSequence);;Argument[0];Argument[-1];taint",
50+
"java.lang;StringBuffer;true;StringBuffer;(String);;Argument[0];Argument[-1];taint",
51+
"java.lang;StringBuilder;true;StringBuilder;;;Argument[0];Argument[-1];taint"
4052
]
4153
}
4254
}

java/ql/test/library-tests/dataflow/taint-format/test.expected

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,13 @@
1010
| A.java:10:22:10:28 | taint(...) | A.java:17:9:17:105 | format(...) |
1111
| A.java:10:22:10:28 | taint(...) | A.java:17:9:17:105 | new ..[] { .. } |
1212
| A.java:10:22:10:28 | taint(...) | A.java:17:102:17:104 | bad |
13+
| A.java:10:22:10:28 | taint(...) | file:///modules/java.base/java/lang/String.class:0:0:0:0 | [summary] read: [] of argument 0 in formatted |
14+
| A.java:10:22:10:28 | taint(...) | file:///modules/java.base/java/lang/String.class:0:0:0:0 | [summary] read: [] of argument 1 in format |
15+
| A.java:10:22:10:28 | taint(...) | file:///modules/java.base/java/lang/String.class:0:0:0:0 | [summary] to write: return (return) in format |
16+
| A.java:10:22:10:28 | taint(...) | file:///modules/java.base/java/lang/String.class:0:0:0:0 | [summary] to write: return (return) in formatted |
17+
| A.java:10:22:10:28 | taint(...) | file:///modules/java.base/java/lang/String.class:0:0:0:0 | parameter this |
18+
| A.java:10:22:10:28 | taint(...) | file://:0:0:0:0 | p0 |
19+
| A.java:10:22:10:28 | taint(...) | file://:0:0:0:0 | p1 |
1320
| A.java:21:22:21:28 | taint(...) | A.java:21:22:21:28 | taint(...) |
1421
| A.java:21:22:21:28 | taint(...) | A.java:25:9:25:9 | f [post update] |
1522
| A.java:21:22:21:28 | taint(...) | A.java:25:9:25:27 | format(...) |
@@ -26,6 +33,8 @@
2633
| A.java:30:22:30:28 | taint(...) | A.java:35:24:35:26 | bad |
2734
| A.java:30:22:30:28 | taint(...) | A.java:36:9:36:10 | sb |
2835
| A.java:30:22:30:28 | taint(...) | A.java:36:9:36:21 | toString(...) |
36+
| A.java:30:22:30:28 | taint(...) | file:///modules/java.base/java/lang/StringBuilder.class:0:0:0:0 | [summary] to write: return (return) in toString |
37+
| A.java:30:22:30:28 | taint(...) | file:///modules/java.base/java/lang/StringBuilder.class:0:0:0:0 | parameter this |
2938
| A.java:40:22:40:28 | taint(...) | A.java:40:22:40:28 | taint(...) |
3039
| A.java:40:22:40:28 | taint(...) | A.java:43:9:43:10 | sb [post update] |
3140
| A.java:40:22:40:28 | taint(...) | A.java:43:9:43:22 | append(...) |
@@ -34,3 +43,7 @@
3443
| A.java:40:22:40:28 | taint(...) | A.java:45:9:45:38 | format(...) |
3544
| A.java:40:22:40:28 | taint(...) | A.java:45:9:45:49 | toString(...) |
3645
| A.java:40:22:40:28 | taint(...) | A.java:45:23:45:24 | sb |
46+
| A.java:40:22:40:28 | taint(...) | file:///modules/java.base/java/lang/StringBuilder.class:0:0:0:0 | [summary] to write: argument -1 in append |
47+
| A.java:40:22:40:28 | taint(...) | file:///modules/java.base/java/lang/StringBuilder.class:0:0:0:0 | [summary] to write: return (return) in append |
48+
| A.java:40:22:40:28 | taint(...) | file:///modules/java.base/java/lang/StringBuilder.class:0:0:0:0 | parameter this |
49+
| A.java:40:22:40:28 | taint(...) | file://:0:0:0:0 | p0 |

0 commit comments

Comments
 (0)