@@ -3,6 +3,8 @@ private import rust
33private import rust as R
44private import codeql.rust.dataflow.DataFlow
55private import codeql.rust.dataflow.internal.DataFlowImpl
6+ private import codeql.rust.dataflow.FlowSource as FlowSource
7+ private import codeql.rust.dataflow.FlowSink as FlowSink
68private import codeql.rust.dataflow.internal.TaintTrackingImpl
79private import codeql.mad.modelgenerator.internal.ModelGeneratorImpl
810private import codeql.rust.dataflow.internal.FlowSummaryImpl as FlowSummary
@@ -105,14 +107,13 @@ module ModelGeneratorInput implements ModelGeneratorInputSig<Location, RustDataF
105107
106108 predicate sinkModelSanitizer ( DataFlow:: Node node ) { none ( ) }
107109
108- predicate apiSource ( DataFlow:: Node source ) { none ( ) }
110+ predicate apiSource ( DataFlow:: Node source ) { source instanceof DataFlow :: ParameterNode }
109111
110112 bindingset [ sourceEnclosing, api]
111113 predicate irrelevantSourceSinkApi ( Callable sourceEnclosing , SourceTargetApi api ) { none ( ) }
112114
113115 string getInputArgument ( DataFlow:: Node source ) {
114- // TODO: Implement when we want to generate sources and sinks
115- result = "getInputArgument(" + source + ")"
116+ result = "Argument[" + source .( Node:: SourceParameterNode ) .getPosition ( ) .toString ( ) + "]"
116117 }
117118
118119 bindingset [ kind]
@@ -174,11 +175,9 @@ module ModelGeneratorInput implements ModelGeneratorInputSig<Location, RustDataF
174175
175176 string partialNeutralModelRow ( Callable api , int i ) { result = partialModelRow ( api , i ) }
176177
177- // TODO: Implement this when we want to generate sources.
178- predicate sourceNode ( DataFlow:: Node node , string kind ) { none ( ) }
178+ predicate sourceNode ( DataFlow:: Node node , string kind ) { FlowSource:: sourceNode ( node , kind ) }
179179
180- // TODO: Implement this when we want to generate sinks.
181- predicate sinkNode ( DataFlow:: Node node , string kind ) { none ( ) }
180+ predicate sinkNode ( DataFlow:: Node node , string kind ) { FlowSink:: sinkNode ( node , kind ) }
182181}
183182
184183import MakeModelGenerator< Location , RustDataFlow , RustTaintTracking , ModelGeneratorInput >
0 commit comments