@@ -270,15 +270,27 @@ private module Sqlite {
270
270
*/
271
271
private module MsSql {
272
272
/** Gets a reference to the `mssql` module. */
273
- DataFlow:: ModuleImportNode mssql ( ) { result . getPath ( ) = "mssql" }
273
+ DataFlow:: SourceNode mssql ( ) { result = DataFlow :: moduleImport ( "mssql" ) }
274
274
275
- /** Gets an expression that creates a request object. */
276
- DataFlow:: SourceNode request ( ) {
277
- // new require('mssql').Request()
278
- result = mssql ( ) .getAConstructorInvocation ( "Request" )
275
+ /** Gets a data flow node referring to a request object. */
276
+ private DataFlow:: SourceNode request ( DataFlow:: TypeTracker t ) {
277
+ t .start ( ) and
278
+ (
279
+ // new require('mssql').Request()
280
+ result = mssql ( ) .getAConstructorInvocation ( "Request" )
281
+ or
282
+ // request.input(...)
283
+ result = request ( ) .getAMethodCall ( "input" )
284
+ )
279
285
or
280
- // request.input(...)
281
- result = request ( ) .getAMethodCall ( "input" )
286
+ exists ( DataFlow:: TypeTracker t2 |
287
+ result = request ( t2 ) .track ( t2 , t )
288
+ )
289
+ }
290
+
291
+ /** Gets a data flow node referring to a request object. */
292
+ DataFlow:: SourceNode request ( ) {
293
+ result = request ( DataFlow:: TypeTracker:: end ( ) )
282
294
}
283
295
284
296
/** A tagged template evaluated as a query. */
@@ -293,15 +305,13 @@ private module MsSql {
293
305
}
294
306
295
307
/** A call to a MsSql query method. */
296
- private class QueryCall extends DatabaseAccess , DataFlow:: ValueNode {
297
- override MethodCallExpr astNode ;
298
-
308
+ private class QueryCall extends DatabaseAccess , DataFlow:: MethodCallNode {
299
309
QueryCall ( ) {
300
- exists ( string meth | this = request ( ) .getAMethodCall ( meth ) | meth = "query" or meth = "batch" )
310
+ this = request ( ) .getAMethodCall ( [ "query" , "batch" ] )
301
311
}
302
312
303
313
override DataFlow:: Node getAQueryArgument ( ) {
304
- result = DataFlow :: valueNode ( astNode . getArgument ( 0 ) )
314
+ result = getArgument ( 0 )
305
315
}
306
316
}
307
317
0 commit comments