@@ -229,30 +229,31 @@ private class ContentProviderUpdateMethod extends SQLiteRunner {
229229}
230230
231231private 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
258259private class QueryBuilderAppendMethod extends TaintTransferringMethod {
0 commit comments