@@ -17,10 +17,6 @@ module Input implements InputSig<Location, DataFlowImplSpecific::CppDataFlow> {
1717
1818 class SummarizedCallableBase = Function ;
1919
20- class SourceBase = Function ;
21-
22- class SinkBase = Function ;
23-
2420 class FlowSummaryCallBase = CallInstruction ;
2521
2622 predicate callableFromSource ( SummarizedCallableBase c ) { exists ( c .getBlock ( ) ) }
@@ -232,7 +228,7 @@ private module Input2 implements Impl::Private::InputSig2 {
232228
233229 bindingset [ source, sc]
234230 SourceSinkReportingElement getASourceReportingElement (
235- Input:: SourceBase source , Impl:: Private:: SummaryComponent sc
231+ Input:: SummarizedCallableBase source , Impl:: Private:: SummaryComponent sc
236232 ) {
237233 exists ( Call call | call .getTarget ( ) = source |
238234 sc = Impl:: Private:: SummaryComponent:: return ( _) and
@@ -312,7 +308,7 @@ private module Input2 implements Impl::Private::InputSig2 {
312308
313309 bindingset [ sink, sc]
314310 SourceSinkReportingElement getASinkReportingElement (
315- Input:: SinkBase sink , Impl:: Private:: SummaryComponent sc
311+ Input:: SummarizedCallableBase sink , Impl:: Private:: SummaryComponent sc
316312 ) {
317313 exists ( Call call , ArgumentPosition pos |
318314 call .getTarget ( ) = sink and
@@ -525,9 +521,10 @@ private class SourceModelFunction extends Public::SourceElement instanceof Funct
525521 }
526522
527523 override predicate isSource (
528- string output , string kind , Public:: Provenance provenance , string model
524+ string output , string kind , Public:: Provenance provenance , boolean isExact , string model
529525 ) {
530- sourceModel ( namespace , type , subtypes , name , signature , ext , output , kind , provenance , model )
526+ sourceModel ( namespace , type , subtypes , name , signature , ext , output , kind , provenance , model ) and
527+ isExact = true
531528 }
532529}
533530
@@ -544,7 +541,10 @@ private class SinkModelFunction extends Public::SinkElement instanceof Function
544541 this = interpretElement ( namespace , type , subtypes , name , signature , ext )
545542 }
546543
547- override predicate isSink ( string input , string kind , Public:: Provenance provenance , string model ) {
548- sinkModel ( namespace , type , subtypes , name , signature , ext , input , kind , provenance , model )
544+ override predicate isSink (
545+ string input , string kind , Public:: Provenance provenance , boolean isExact , string model
546+ ) {
547+ sinkModel ( namespace , type , subtypes , name , signature , ext , input , kind , provenance , model ) and
548+ isExact = true
549549 }
550550}
0 commit comments