C#/Java: After remaining code after rebase.

This commit is contained in:
Michael Nebel
2022-03-14 14:08:49 +01:00
parent 74352925e4
commit 21bcaf6a0e
5 changed files with 19 additions and 19 deletions

View File

@@ -81,11 +81,11 @@ private import CaptureSummaryModels
* Captured Model:
* ```Summaries;BasicFlow;false;AssignToArray;(System.Int32,System.Int32[]);Argument[0];Argument[1].Element;taint```
*/
private string captureFlow(TargetAPI api) {
private string captureFlow(TargetApi api) {
result = captureQualifierFlow(api) or
result = captureThroughFlow(api)
}
from TargetAPI api, string flow
from TargetApi api, string flow
where flow = captureFlow(api)
select flow order by flow

View File

@@ -8,7 +8,7 @@ import CaptureSummaryModelsSpecific
/**
* Gets the summary model of `api`, if it follows the `fluent` programming pattern (returns `this`).
*/
string captureQualifierFlow(TargetAPI api) {
string captureQualifierFlow(TargetApi api) {
exists(ReturnNodeExt ret |
api = returnNodeEnclosingCallable(ret) and
isOwnInstanceAccessNode(ret)
@@ -41,7 +41,7 @@ class ThroughFlowConfig extends TaintTracking::Configuration {
override predicate isSource(DataFlow::Node source, DataFlow::FlowState state) {
source instanceof DataFlow::ParameterNode and
source.getEnclosingCallable() instanceof TargetAPI and
source.getEnclosingCallable() instanceof TargetApi and
state instanceof TaintRead
}
@@ -52,7 +52,7 @@ class ThroughFlowConfig extends TaintTracking::Configuration {
(state instanceof TaintRead or state instanceof TaintStore)
}
override predicate isAdditionalFlowStep(
override predicate isAdditionalTaintStep(
DataFlow::Node node1, DataFlow::FlowState state1, DataFlow::Node node2,
DataFlow::FlowState state2
) {
@@ -83,7 +83,7 @@ class ThroughFlowConfig extends TaintTracking::Configuration {
/**
* Gets the summary model(s) of `api`, if there is flow from parameters to return value or parameter.
*/
string captureThroughFlow(TargetAPI api) {
string captureThroughFlow(TargetApi api) {
exists(
ThroughFlowConfig config, DataFlow::ParameterNode p, ReturnNodeExt returnNodeExt, string input,
string output

View File

@@ -31,7 +31,7 @@ predicate isRelevantContent(DataFlow::Content c) {
* Gets the summary model for `api` with `input`, `output` and `kind`.
*/
bindingset[input, output, kind]
string asSummaryModel(TargetAPI api, string input, string output, string kind) {
string asSummaryModel(TargetApi api, string input, string output, string kind) {
result =
asPartialModel(api) + input + ";" //
+ output + ";" //
@@ -42,7 +42,7 @@ string asSummaryModel(TargetAPI api, string input, string output, string kind) {
* Gets the value summary model for `api` with `input` and `output`.
*/
bindingset[input, output]
string asValueModel(TargetAPI api, string input, string output) {
string asValueModel(TargetApi api, string input, string output) {
result = asSummaryModel(api, input, output, "value")
}
@@ -50,7 +50,7 @@ string asValueModel(TargetAPI api, string input, string output) {
* Gets the taint summary model for `api` with `input` and `output`.
*/
bindingset[input, output]
string asTaintModel(TargetAPI api, string input, string output) {
string asTaintModel(TargetApi api, string input, string output) {
result = asSummaryModel(api, input, output, "taint")
}
@@ -58,7 +58,7 @@ string asTaintModel(TargetAPI api, string input, string output) {
* Gets the sink model for `api` with `input` and `kind`.
*/
bindingset[input, kind]
string asSinkModel(TargetAPI api, string input, string kind) {
string asSinkModel(TargetApi api, string input, string kind) {
result = asPartialModel(api) + input + ";" + kind
}
@@ -66,6 +66,6 @@ string asSinkModel(TargetAPI api, string input, string kind) {
* Gets the source model for `api` with `output` and `kind`.
*/
bindingset[output, kind]
string asSourceModel(TargetAPI api, string output, string kind) {
string asSourceModel(TargetApi api, string output, string kind) {
result = asPartialModel(api) + output + ";" + kind
}

View File

@@ -12,15 +12,15 @@ private predicate isRelevantForModels(Callable api) { not api instanceof MainMet
* In the Standard library and 3rd party libraries it the Callables that can be called
* from outside the library itself.
*/
class TargetAPI extends Callable {
TargetAPI() {
class TargetApi extends Callable {
TargetApi() {
[this.(Modifiable), this.(Accessor).getDeclaration()].isEffectivelyPublic() and
this.fromSource() and
isRelevantForModels(this)
}
}
private string parameterQualifiedTypeNamesToString(TargetAPI api) {
private string parameterQualifiedTypeNamesToString(TargetApi api) {
result =
concat(Parameter p, int i |
p = api.getParameter(i)
@@ -30,7 +30,7 @@ private string parameterQualifiedTypeNamesToString(TargetAPI api) {
}
/** Holds if the summary should apply for all overrides of this. */
private predicate isBaseCallableOrPrototype(TargetAPI api) {
private predicate isBaseCallableOrPrototype(TargetApi api) {
api.getDeclaringType() instanceof Interface
or
exists(Modifiable m | m = [api.(Modifiable), api.(Accessor).getDeclaration()] |
@@ -41,12 +41,12 @@ private predicate isBaseCallableOrPrototype(TargetAPI api) {
}
/** Gets a string representing whether the summary should apply for all overrides of this. */
private string getCallableOverride(TargetAPI api) {
private string getCallableOverride(TargetApi api) {
if isBaseCallableOrPrototype(api) then result = "true" else result = "false"
}
/** Computes the first 6 columns for CSV rows. */
string asPartialModel(TargetAPI api) {
string asPartialModel(TargetApi api) {
exists(string namespace, string type |
api.getDeclaringType().hasQualifiedName(namespace, type) and
result =

View File

@@ -73,11 +73,11 @@ private import CaptureSummaryModels
* Captured Model:
* ```p;Foo;true;addToList;;Argument[0];Argument[1];taint```
*/
string captureFlow(TargetAPI api) {
string captureFlow(TargetApi api) {
result = captureQualifierFlow(api) or
result = captureThroughFlow(api)
}
from TargetAPI api, string flow
from TargetApi api, string flow
where flow = captureFlow(api)
select flow order by flow