Skip to content

Commit 1e1b59e

Browse files
author
Stephan Brandauer
committed
Java: automodel: additionally consider sources for alreadyAiModeled property
1 parent 6f7d781 commit 1e1b59e

File tree

2 files changed

+8
-2
lines changed

2 files changed

+8
-2
lines changed

java/ql/automodel/src/AutomodelApplicationModeExtractCandidates.ql

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -72,10 +72,10 @@ where
7272
// assume that, if a sink has already been modeled in a MaD model, then it doesn't belong to any additional sink
7373
// types, and we don't need to reexamine it.
7474
(
75-
not CharacteristicsImpl::isSink(endpoint, _, _) and alreadyAiModeled = ""
75+
not CharacteristicsImpl::isModeled(endpoint, _, _, _) and alreadyAiModeled = ""
7676
or
7777
alreadyAiModeled.matches("%ai-%") and
78-
CharacteristicsImpl::isSink(endpoint, _, alreadyAiModeled)
78+
CharacteristicsImpl::isModeled(endpoint, _, _, alreadyAiModeled)
7979
) and
8080
meta.hasMetadata(endpoint, package, type, subtypes, name, signature, input, output, isVarargsArray) and
8181
includeAutomodelCandidate(package, type, name, signature) and

java/ql/automodel/src/AutomodelSharedCharacteristics.qll

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -96,6 +96,12 @@ module SharedCharacteristics<CandidateSig Candidate> {
9696

9797
predicate isNeutral = Candidate::isNeutral/1;
9898

99+
predicate isModeled(Candidate::Endpoint e, string kind, string extensibleKind, string provenance) {
100+
Candidate::isSink(e, kind, provenance) and extensibleKind = "sinkModel"
101+
or
102+
Candidate::isSource(e, kind, provenance) and extensibleKind = "sourceModel"
103+
}
104+
99105
/**
100106
* Holds if `endpoint` is modeled as `endpointType` (endpoint type must not be negative).
101107
*/

0 commit comments

Comments
 (0)