@@ -2416,7 +2416,10 @@ module PrivateDjango {
2416
2416
// Since we don't know the URL pattern, we simply mark all parameters as a routed
2417
2417
// parameter. This should give us more RemoteFlowSources but could also lead to
2418
2418
// more FPs. If this turns out to be the wrong tradeoff, we can always change our mind.
2419
- result in [ this .getArg ( _) , this .getArgByName ( _) ] and
2419
+ result in [
2420
+ this .getArg ( _) , this .getArgByName ( _) , //
2421
+ this .getVararg ( ) .( Parameter ) , this .getKwarg ( ) .( Parameter ) , // TODO: These sources should be modeled as storing content!
2422
+ ] and
2420
2423
not result = any ( int i | i < this .getFirstPossibleRoutedParamIndex ( ) | this .getArg ( i ) )
2421
2424
}
2422
2425
@@ -2452,13 +2455,20 @@ module PrivateDjango {
2452
2455
// more FPs. If this turns out to be the wrong tradeoff, we can always change our mind.
2453
2456
exists ( DjangoRouteHandler routeHandler | routeHandler = this .getARequestHandler ( ) |
2454
2457
not exists ( this .getUrlPattern ( ) ) and
2455
- result in [ routeHandler .getArg ( _) , routeHandler .getArgByName ( _) ] and
2458
+ result in [
2459
+ routeHandler .getArg ( _) , routeHandler .getArgByName ( _) , //
2460
+ routeHandler .getVararg ( ) .( Parameter ) , routeHandler .getKwarg ( ) .( Parameter ) , // TODO: These sources should be modeled as storing content!
2461
+ ] and
2456
2462
not result =
2457
2463
any ( int i | i < routeHandler .getFirstPossibleRoutedParamIndex ( ) | routeHandler .getArg ( i ) )
2458
2464
)
2459
2465
or
2460
2466
exists ( string name |
2461
- result = this .getARequestHandler ( ) .getArgByName ( name ) and
2467
+ (
2468
+ result = this .getARequestHandler ( ) .getKwarg ( ) // TODO: These sources should be modeled as storing content!
2469
+ or
2470
+ result = this .getARequestHandler ( ) .getArgByName ( name )
2471
+ ) and
2462
2472
exists ( string match |
2463
2473
match = this .getUrlPattern ( ) .regexpFind ( pathRoutedParameterRegex ( ) , _, _) and
2464
2474
name = match .regexpCapture ( pathRoutedParameterRegex ( ) , 2 )
@@ -2475,7 +2485,10 @@ module PrivateDjango {
2475
2485
// more FPs. If this turns out to be the wrong tradeoff, we can always change our mind.
2476
2486
exists ( DjangoRouteHandler routeHandler | routeHandler = this .getARequestHandler ( ) |
2477
2487
not exists ( this .getUrlPattern ( ) ) and
2478
- result in [ routeHandler .getArg ( _) , routeHandler .getArgByName ( _) ] and
2488
+ result in [
2489
+ routeHandler .getArg ( _) , routeHandler .getArgByName ( _) , //
2490
+ routeHandler .getVararg ( ) .( Parameter ) , routeHandler .getKwarg ( ) .( Parameter ) , // TODO: These sources should be modeled as storing content!
2491
+ ] and
2479
2492
not result =
2480
2493
any ( int i | i < routeHandler .getFirstPossibleRoutedParamIndex ( ) | routeHandler .getArg ( i ) )
2481
2494
)
0 commit comments