Skip to content

Commit a510f58

Browse files
Java: Implement code review changes
1 parent 91ce02a commit a510f58

File tree

2 files changed

+12
-11
lines changed

2 files changed

+12
-11
lines changed

java/ql/src/semmle/code/java/dataflow/internal/TaintTrackingUtil.qll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -265,7 +265,7 @@ private int argToParam(MethodAccess ma, int arg) {
265265
exists(ma.getArgument(arg)) and
266266
exists(Method m | m = ma.getMethod() |
267267
if m.isVarargs() and arg >= m.getNumberOfParameters()
268-
then result = m.getNumberOfParameters() - 2
268+
then result = m.getNumberOfParameters() - 1
269269
else result = arg
270270
)
271271
}

java/ql/src/semmle/code/java/frameworks/android/SQLite.qll

Lines changed: 11 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -229,30 +229,31 @@ private class ContentProviderUpdateMethod extends SQLiteRunner {
229229
}
230230

231231
private class QueryBuilderBuildMethod extends TaintPreservingMethod {
232+
int argument;
233+
232234
QueryBuilderBuildMethod() {
233-
this.getDeclaringType().getASourceSupertype*() instanceof TypeSQLiteQueryBuilder and
235+
this.getDeclaringType().getASourceSupertype*() instanceof Class and
234236
// buildQuery(String[] projectionIn, String selection, String groupBy, String having, String sortOrder, String limit)
235237
// buildQuery(String[] projectionIn, String selection, String[] selectionArgs, String groupBy, String having, String sortOrder, String limit)
236238
// buildUnionQuery(String[] subQueries, String sortOrder, String limit)
237239
// buildUnionSubQuery(String typeDiscriminatorColumn, String[] unionColumns, Set<String> columnsPresentInTable, int computedColumnsOffset, String typeDiscriminatorValue, String selection, String[] selectionArgs, String groupBy, String having)
238240
// buildUnionSubQuery(String typeDiscriminatorColumn, String[] unionColumns, Set<String> columnsPresentInTable, int computedColumnsOffset, String typeDiscriminatorValue, String selection, String groupBy, String having)
239241
// static buildQueryString(boolean distinct, String tables, String[] columns, String where, String groupBy, String having, String orderBy, String limit)
240-
this.hasName(["buildQuery", "buildUnionQuery", "buildUnionSubQuery", "buildQueryString"])
241-
}
242-
243-
override predicate returnsTaint(int arg) {
244-
arg = -1
242+
this.hasName(["buildQuery", "buildUnionQuery", "buildUnionSubQuery"]) and
243+
argument = -1
245244
or
246245
hasName(["buildQuery", "buildUnionQuery"]) and
247-
arg = [0 .. getNumberOfParameters()]
246+
argument = [0 .. getNumberOfParameters()]
248247
or
249248
hasName("buildQueryString") and
250-
arg = [1 .. getNumberOfParameters()]
249+
argument = [1 .. getNumberOfParameters()]
251250
or
252251
hasName("buildUnionSubQuery") and
253-
arg = [0 .. getNumberOfParameters()] and
254-
arg != 3
252+
argument = [0 .. getNumberOfParameters()] and
253+
argument != 3
255254
}
255+
256+
override predicate returnsTaint(int arg) { argument = arg }
256257
}
257258

258259
private class QueryBuilderAppendMethod extends TaintTransferringMethod {

0 commit comments

Comments
 (0)