Skip to content

Commit 7e2c49f

Browse files
Java: Fix a couple of flow step issues
Co-authored-by: Anders Schack-Mulligen <aschackmull@users.noreply.github.com>
1 parent 4a8b7f6 commit 7e2c49f

File tree

2 files changed

+18
-19
lines changed

2 files changed

+18
-19
lines changed

java/ql/src/semmle/code/java/dataflow/FlowSteps.qll

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -62,7 +62,7 @@ private class StringTaintPreservingMethod extends TaintPreservingMethod {
6262
}
6363

6464
override predicate returnsTaintFrom(int arg) {
65-
arg = -1
65+
arg = -1 and not this.isStatic()
6666
or
6767
this.hasName(["concat", "copyValueOf"]) and arg = 0
6868
or

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

Lines changed: 17 additions & 18 deletions
Original file line numberDiff line numberDiff line change
@@ -233,24 +233,23 @@ private class QueryBuilderBuildMethod extends TaintPreservingMethod {
233233

234234
QueryBuilderBuildMethod() {
235235
this.getDeclaringType().getASourceSupertype*() instanceof TypeSQLiteQueryBuilder and
236-
// buildQuery(String[] projectionIn, String selection, String groupBy, String having, String sortOrder, String limit)
237-
// buildQuery(String[] projectionIn, String selection, String[] selectionArgs, String groupBy, String having, String sortOrder, String limit)
238-
// buildUnionQuery(String[] subQueries, String sortOrder, String limit)
239-
// buildUnionSubQuery(String typeDiscriminatorColumn, String[] unionColumns, Set<String> columnsPresentInTable, int computedColumnsOffset, String typeDiscriminatorValue, String selection, String[] selectionArgs, String groupBy, String having)
240-
// buildUnionSubQuery(String typeDiscriminatorColumn, String[] unionColumns, Set<String> columnsPresentInTable, int computedColumnsOffset, String typeDiscriminatorValue, String selection, String groupBy, String having)
241-
// static buildQueryString(boolean distinct, String tables, String[] columns, String where, String groupBy, String having, String orderBy, String limit)
242-
this.hasName(["buildQuery", "buildUnionQuery", "buildUnionSubQuery"]) and
243-
argument = -1
244-
or
245-
hasName(["buildQuery", "buildUnionQuery"]) and
246-
argument = [0 .. getNumberOfParameters()]
247-
or
248-
hasName("buildQueryString") and
249-
argument = [1 .. getNumberOfParameters()]
250-
or
251-
hasName("buildUnionSubQuery") and
252-
argument = [0 .. getNumberOfParameters()] and
253-
argument != 3
236+
(
237+
// buildQuery(String[] projectionIn, String selection, String groupBy, String having, String sortOrder, String limit)
238+
// buildQuery(String[] projectionIn, String selection, String[] selectionArgs, String groupBy, String having, String sortOrder, String limit)
239+
// buildUnionQuery(String[] subQueries, String sortOrder, String limit)
240+
this.hasName(["buildQuery", "buildUnionQuery"]) and
241+
argument = [-1 .. getNumberOfParameters()]
242+
or
243+
// buildUnionSubQuery(String typeDiscriminatorColumn, String[] unionColumns, Set<String> columnsPresentInTable, int computedColumnsOffset, String typeDiscriminatorValue, String selection, String[] selectionArgs, String groupBy, String having)
244+
// buildUnionSubQuery(String typeDiscriminatorColumn, String[] unionColumns, Set<String> columnsPresentInTable, int computedColumnsOffset, String typeDiscriminatorValue, String selection, String groupBy, String having)
245+
this.hasName("buildUnionSubQuery") and
246+
argument = [-1 .. getNumberOfParameters()] and
247+
argument != 3
248+
or
249+
// static buildQueryString(boolean distinct, String tables, String[] columns, String where, String groupBy, String having, String orderBy, String limit)
250+
hasName("buildQueryString") and
251+
argument = [1 .. getNumberOfParameters()]
252+
)
254253
}
255254

256255
override predicate returnsTaintFrom(int arg) { argument = arg }

0 commit comments

Comments
 (0)