Skip to content

Commit f6b9195

Browse files
committed
Add validation of package groups
1 parent ab991af commit f6b9195

File tree

1 file changed

+19
-1
lines changed

1 file changed

+19
-1
lines changed

go/ql/lib/semmle/go/dataflow/ExternalFlow.qll

Lines changed: 19 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -376,12 +376,30 @@ module ModelValidation {
376376
)
377377
}
378378

379+
private string getInvalidPackageGroup() {
380+
exists(string pred, string group, string package |
381+
FlowExtensions::sourceModel(package, _, _, _, _, _, _, _, _, _) and pred = "source"
382+
or
383+
FlowExtensions::sinkModel(package, _, _, _, _, _, _, _, _, _) and pred = "sink"
384+
or
385+
FlowExtensions::summaryModel(package, _, _, _, _, _, _, _, _, _, _) and
386+
pred = "summary"
387+
or
388+
FlowExtensions::neutralModel(package, _, _, _, _, _) and
389+
pred = "neutral"
390+
|
391+
package = groupPrefix() + group and
392+
not FlowExtensions::packageGrouping(group, _) and
393+
result = "Dubious package group \"" + package + "\" in " + pred + " model."
394+
)
395+
}
396+
379397
/** Holds if some row in a MaD flow model appears to contain typos. */
380398
query predicate invalidModelRow(string msg) {
381399
msg =
382400
[
383401
getInvalidModelSignature(), getInvalidModelInput(), getInvalidModelOutput(),
384-
KindVal::getInvalidModelKind()
402+
KindVal::getInvalidModelKind(), getInvalidPackageGroup()
385403
]
386404
}
387405
}

0 commit comments

Comments
 (0)