forked from github/codeql
-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathJdbc.qll
More file actions
54 lines (47 loc) · 1.75 KB
/
Copy pathJdbc.qll
File metadata and controls
54 lines (47 loc) · 1.75 KB
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
/**
* Provides classes and predicates for working with the Java JDBC API.
*/
import semmle.code.java.Type
import semmle.code.java.dataflow.ExternalFlow
/*--- Types ---*/
/** The interface `java.sql.Connection`. */
class TypeConnection extends Interface {
TypeConnection() { hasQualifiedName("java.sql", "Connection") }
}
/** The interface `java.sql.PreparedStatement`. */
class TypePreparedStatement extends Interface {
TypePreparedStatement() { hasQualifiedName("java.sql", "PreparedStatement") }
}
/** The interface `java.sql.ResultSet`. */
class TypeResultSet extends Interface {
TypeResultSet() { hasQualifiedName("java.sql", "ResultSet") }
}
/** The interface `java.sql.Statement`. */
class TypeStatement extends Interface {
TypeStatement() { hasQualifiedName("java.sql", "Statement") }
}
/*--- Methods ---*/
/** A method with the name `getString` declared in `java.sql.ResultSet`. */
class ResultSetGetStringMethod extends Method {
ResultSetGetStringMethod() {
getDeclaringType() instanceof TypeResultSet and
hasName("getString") and
getReturnType() instanceof TypeString
}
}
/*--- Other definitions ---*/
private class SqlSinkCsv extends SinkModelCsv {
override predicate row(string row) {
row =
[
//"package;type;overrides;name;signature;ext;spec;kind"
"java.sql;Connection;true;prepareStatement;;;Argument[0];sql",
"java.sql;Connection;true;prepareCall;;;Argument[0];sql",
"java.sql;Statement;true;execute;;;Argument[0];sql",
"java.sql;Statement;true;executeQuery;;;Argument[0];sql",
"java.sql;Statement;true;executeUpdate;;;Argument[0];sql",
"java.sql;Statement;true;executeLargeUpdate;;;Argument[0];sql",
"java.sql;Statement;true;addBatch;;;Argument[0];sql"
]
}
}