Skip to content

Commit e834f93

Browse files
committed
Fix Apache Commons HTTP Client and SQL Injection tests
1 parent 746c2d1 commit e834f93

File tree

9 files changed

+54
-29
lines changed

9 files changed

+54
-29
lines changed

java/ql/test/library-tests/frameworks/apache-http/client/Test.java renamed to java/ql/test/library-tests/frameworks/apache-http/Client.java

Lines changed: 23 additions & 14 deletions
Original file line numberDiff line numberDiff line change
@@ -6,66 +6,75 @@
66
import org.apache.http.client.utils.URLEncodedUtils;
77

88
// Test case generated by GenerateFlowTestCase.ql
9-
public class Test {
9+
public class Client {
1010

11-
<T> T getElement(Iterable<T> it) { return it.iterator().next(); }
12-
Object getURIBuilder_pathDefault(Object container) { return null; }
13-
Object source() { return null; }
14-
void sink(Object o) { }
11+
<T> T getElement(Iterable<T> it) {
12+
return it.iterator().next();
13+
}
14+
15+
Object getURIBuilder_pathDefault(Object container) {
16+
return null;
17+
}
18+
19+
Object taint() {
20+
return null;
21+
}
22+
23+
void sink(Object o) {}
1524

1625
public void test() throws Exception {
1726

1827
{
1928
// "org.apache.http.client.utils;URIBuilder;true;URIBuilder;(String);;Argument[0];Argument[-1];taint;ai-generated"
2029
URIBuilder out = null;
21-
String in = (String)source();
30+
String in = (String) taint();
2231
out = new URIBuilder(in);
2332
sink(out); // $ hasTaintFlow
2433
}
2534
{
2635
// "org.apache.http.client.utils;URIBuilder;true;URIBuilder;(URI);;Argument[0];Argument[-1];taint;ai-generated"
2736
URIBuilder out = null;
28-
URI in = (URI)source();
37+
URI in = (URI) taint();
2938
out = new URIBuilder(in);
3039
sink(out); // $ hasTaintFlow
3140
}
3241
{
3342
// "org.apache.http.client.utils;URIBuilder;true;setHost;(String);;Argument[0];Argument[-1];taint;ai-generated"
3443
URIBuilder out = null;
35-
String in = (String)source();
44+
String in = (String) taint();
3645
out.setHost(in);
3746
sink(out); // $ hasTaintFlow
3847
}
3948
{
4049
// "org.apache.http.client.utils;URIBuilder;true;setHost;(String);;Argument[0];ReturnValue;taint;ai-generated"
4150
URIBuilder out = null;
42-
String in = (String)source();
51+
String in = (String) taint();
4352
URIBuilder instance = null;
4453
out = instance.setHost(in);
4554
sink(out); // $ hasTaintFlow
4655
}
4756
{
4857
// "org.apache.http.client.utils;URIBuilder;true;setPath;(String);;Argument[0];Argument[-1].SyntheticField[org.apache.http.client.utils.URIBuilder.path];taint;ai-generated"
4958
URIBuilder out = null;
50-
String in = (String)source();
59+
String in = (String) taint();
5160
out.setPath(in);
5261
sink(getURIBuilder_pathDefault(out)); // $ hasTaintFlow
5362
}
5463
{
5564
// "org.apache.http.client.utils;URIBuilder;true;setPathSegments;(List);;Argument[0];Argument[-1].SyntheticField[org.apache.http.client.utils.URIBuilder.path];taint;ai-generated"
5665
URIBuilder out = null;
57-
List in = (List)source();
66+
List in = (List) taint();
5867
out.setPathSegments(in);
5968
sink(getURIBuilder_pathDefault(out)); // $ hasTaintFlow
6069
}
6170
{
6271
// "org.apache.http.client.utils;URLEncodedUtils;true;parse;(URI,String);;Argument[0];ReturnValue.Element;taint;ai-generated"
6372
List out = null;
64-
URI in = (URI)source();
65-
out = URLEncodedUtils.parse(in, (String)null);
73+
URI in = (URI) taint();
74+
out = URLEncodedUtils.parse(in, (String) null);
6675
sink(getElement(out)); // $ hasTaintFlow
6776
}
6877

6978
}
7079

71-
}
80+
}

java/ql/test/library-tests/frameworks/apache-http/client/options

Lines changed: 0 additions & 1 deletion
This file was deleted.

java/ql/test/library-tests/frameworks/apache-http/client/test.expected

Whitespace-only changes.

java/ql/test/library-tests/frameworks/apache-http/client/test.ext.yml

Lines changed: 0 additions & 6 deletions
This file was deleted.

java/ql/test/library-tests/frameworks/apache-http/client/test.ql

Lines changed: 0 additions & 2 deletions
This file was deleted.
Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,6 @@
1+
extensions:
2+
- addsTo:
3+
pack: codeql/java-tests
4+
extensible: summaryModel
5+
data:
6+
- ["generatedtest", "Client", False, "getURIBuilder_pathDefault", "(Object)", "", "Argument[0].SyntheticField[org.apache.http.client.utils.URIBuilder.path]", "ReturnValue", "taint", "manual"]

java/ql/test/query-tests/security/CWE-089/semmle/examples/controlledString.expected

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -57,6 +57,7 @@
5757
| good | 4 | Test.java:126:20:126:88 | "SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY=? ORDER BY PRICE" |
5858
| good | 5 | Test.java:127:62:127:67 | query2 |
5959
| good | 6 | Test.java:128:24:128:24 | 1 |
60+
| source | 1 | mad/Test.java:11:16:11:19 | null |
6061
| tableNames | 4 | Test.java:187:32:187:56 | "SELECT ITEM,PRICE FROM " |
6162
| tableNames | 5 | Test.java:188:8:188:55 | " WHERE ITEM_CATEGORY='Biscuits' ORDER BY PRICE" |
6263
| tableNames | 10 | Test.java:193:33:193:57 | "SELECT ITEM,PRICE FROM " |
@@ -97,6 +98,18 @@
9798
| tainted | 58 | Test.java:87:8:87:15 | category |
9899
| tainted | 58 | Test.java:87:19:87:36 | "' ORDER BY PRICE" |
99100
| tainted | 59 | Test.java:88:47:88:52 | query1 |
101+
| test | 3 | mad/Test.java:17:24:17:25 | "" |
102+
| test | 3 | mad/Test.java:17:28:17:29 | "" |
103+
| test | 3 | mad/Test.java:17:39:17:40 | "" |
104+
| test | 4 | mad/Test.java:26:43:26:44 | "" |
105+
| test | 4 | mad/Test.java:26:54:26:55 | "" |
106+
| test | 5 | mad/Test.java:19:28:19:29 | "" |
107+
| test | 5 | mad/Test.java:19:32:19:33 | "" |
108+
| test | 13 | mad/Test.java:35:13:35:80 | updatePartitionColumnStatistics(...) |
109+
| test | 13 | mad/Test.java:35:76:35:79 | null |
110+
| test | 18 | mad/Test.java:40:34:40:37 | null |
111+
| test | 18 | mad/Test.java:40:40:40:43 | null |
112+
| test | 18 | mad/Test.java:40:46:40:49 | null |
100113
| unescaped | 4 | Test.java:96:28:96:81 | "SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY='" |
101114
| unescaped | 5 | Test.java:97:23:97:40 | "' ORDER BY PRICE" |
102115
| unescaped | 11 | Test.java:103:19:103:72 | "SELECT ITEM,PRICE FROM PRODUCT WHERE ITEM_CATEGORY='" |

java/ql/test/query-tests/security/CWE-089/semmle/examples/mad/Test.java

Lines changed: 8 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -1,14 +1,20 @@
11
import java.sql.DatabaseMetaData;
2+
import java.util.List;
3+
import org.apache.hadoop.hive.metastore.api.ColumnStatistics;
4+
import org.apache.hadoop.hive.metastore.api.DefaultConstraintsRequest;
5+
import org.apache.hadoop.hive.metastore.ObjectStore;
6+
import org.apache.hive.hcatalog.templeton.HcatDelegator;
7+
import org.apache.hive.hcatalog.templeton.ColumnDesc;
28

39
public class Test {
410
public static Object source() {
511
return null;
612
}
713

8-
public void test(DatabaseMetaData dmd) {
14+
public void test(DatabaseMetaData dmd) throws Exception {
915
String taint = (String) source();
1016
// java.sql;DatabaseMetaData;true;getColumns;(String,String,String,String);;Argument[2];sql;ai-generated
11-
dmd.getCoolumns("", "", taint, ""); // $ sqlInjection
17+
dmd.getColumns("", "", taint, ""); // $ sqlInjection
1218
// java.sql;DatabaseMetaData;true;getPrimaryKeys;(String,String,String);;Argument[2];sql;ai-generated
1319
dmd.getPrimaryKeys("", "", taint); // $ sqlInjection
1420
}

java/ql/test/stubs/apache-http-4.4.13/org/apache/http/HttpEntity.java

Lines changed: 4 additions & 4 deletions
Some generated files are not rendered by default. Learn more about customizing how changed files appear on GitHub.

0 commit comments

Comments
 (0)