@@ -2416,7 +2416,10 @@ module PrivateDjango {
24162416 // Since we don't know the URL pattern, we simply mark all parameters as a routed
24172417 // parameter. This should give us more RemoteFlowSources but could also lead to
24182418 // 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
24202423 not result = any ( int i | i < this .getFirstPossibleRoutedParamIndex ( ) | this .getArg ( i ) )
24212424 }
24222425
@@ -2452,13 +2455,20 @@ module PrivateDjango {
24522455 // more FPs. If this turns out to be the wrong tradeoff, we can always change our mind.
24532456 exists ( DjangoRouteHandler routeHandler | routeHandler = this .getARequestHandler ( ) |
24542457 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
24562462 not result =
24572463 any ( int i | i < routeHandler .getFirstPossibleRoutedParamIndex ( ) | routeHandler .getArg ( i ) )
24582464 )
24592465 or
24602466 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
24622472 exists ( string match |
24632473 match = this .getUrlPattern ( ) .regexpFind ( pathRoutedParameterRegex ( ) , _, _) and
24642474 name = match .regexpCapture ( pathRoutedParameterRegex ( ) , 2 )
@@ -2475,7 +2485,10 @@ module PrivateDjango {
24752485 // more FPs. If this turns out to be the wrong tradeoff, we can always change our mind.
24762486 exists ( DjangoRouteHandler routeHandler | routeHandler = this .getARequestHandler ( ) |
24772487 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
24792492 not result =
24802493 any ( int i | i < routeHandler .getFirstPossibleRoutedParamIndex ( ) | routeHandler .getArg ( i ) )
24812494 )
0 commit comments