@@ -663,18 +663,21 @@ private predicate flowThroughProperty(
663663private predicate summarizedHigherOrderCall (
664664 DataFlow:: Node arg , DataFlow:: Node cb , int i , DataFlow:: Configuration cfg , PathSummary summary
665665) {
666- exists ( Function f , DataFlow:: InvokeNode outer , DataFlow:: InvokeNode inner , int j ,
667- DataFlow:: Node innerArg , DataFlow:: ParameterNode cbParm , PathSummary oldSummary |
666+ exists (
667+ Function f , DataFlow:: InvokeNode outer , DataFlow:: InvokeNode inner , int j ,
668+ DataFlow:: Node innerArg , DataFlow:: ParameterNode cbParm , PathSummary oldSummary
669+ |
668670 reachableFromInput ( f , outer , arg , innerArg , cfg , oldSummary ) and
669671 argumentPassing ( outer , cb , f , cbParm ) and
670- innerArg = inner .getArgument ( j ) |
672+ innerArg = inner .getArgument ( j )
673+ |
671674 // direct higher-order call
672675 cbParm .flowsTo ( inner .getCalleeNode ( ) ) and
673676 i = j and
674677 summary = oldSummary
675678 or
676679 // indirect higher-order call
677- exists ( DataFlow:: Node cbArg , PathSummary newSummary |
680+ exists ( DataFlow:: Node cbArg , PathSummary newSummary |
678681 cbParm .flowsTo ( cbArg ) and
679682 summarizedHigherOrderCall ( innerArg , cbArg , i , cfg , newSummary ) and
680683 summary = oldSummary .append ( PathSummary:: call ( ) ) .append ( newSummary )
@@ -696,14 +699,14 @@ predicate higherOrderCall(
696699 PathSummary summary
697700) {
698701 // Summarized call
699- exists ( DataFlow:: Node cb |
702+ exists ( DataFlow:: Node cb |
700703 summarizedHigherOrderCall ( arg , cb , i , cfg , summary ) and
701704 callback .flowsTo ( cb )
702705 )
703706 or
704707 // Local invocation of a parameter
705708 isRelevant ( arg , cfg ) and
706- exists ( DataFlow:: InvokeNode invoke |
709+ exists ( DataFlow:: InvokeNode invoke |
707710 arg = invoke .getArgument ( i ) and
708711 invoke = callback .( DataFlow:: ParameterNode ) .getACall ( ) and
709712 summary = PathSummary:: call ( )
@@ -721,7 +724,6 @@ predicate higherOrderCall(
721724 )
722725}
723726
724-
725727/**
726728 * Holds if `pred` is passed as an argument to a function `f` which also takes a
727729 * callback parameter `cb` and then invokes `cb`, passing `pred` into parameter `succ`
0 commit comments