Skip to content

Commit ab991af

Browse files
committed
Fix package validation errors
1 parent f650e3f commit ab991af

File tree

1 file changed

+33
-22
lines changed

1 file changed

+33
-22
lines changed

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

Lines changed: 33 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -110,12 +110,15 @@ predicate sourceModel(
110110
string package, string type, boolean subtypes, string name, string signature, string ext,
111111
string output, string kind, string provenance, QlBuiltins::ExtensionId madId
112112
) {
113-
FlowExtensions::sourceModel(package, type, subtypes, name, signature, ext, output, kind,
114-
provenance, madId)
115-
or
116-
// Also look for models that are defined for a group that `package` is part of.
117-
FlowExtensions::sourceModel(getGroup(package), type, subtypes, name, signature, ext, output, kind,
118-
provenance, madId)
113+
exists(string p |
114+
FlowExtensions::sourceModel(p, type, subtypes, name, signature, ext, output, kind, provenance,
115+
madId)
116+
|
117+
not exists(string s | p = groupPrefix() + s) and package = p
118+
or
119+
// Also look for models that are defined for a group that `package` is part of.
120+
p = getGroup(package)
121+
)
119122
}
120123

121124
/**
@@ -127,12 +130,15 @@ predicate sinkModel(
127130
string package, string type, boolean subtypes, string name, string signature, string ext,
128131
string input, string kind, string provenance, QlBuiltins::ExtensionId madId
129132
) {
130-
FlowExtensions::sinkModel(package, type, subtypes, name, signature, ext, input, kind, provenance,
131-
madId)
132-
or
133-
// Also look for models that are defined for a group that `package` is part of.
134-
FlowExtensions::sinkModel(getGroup(package), type, subtypes, name, signature, ext, input, kind,
135-
provenance, madId)
133+
exists(string p |
134+
FlowExtensions::sinkModel(p, type, subtypes, name, signature, ext, input, kind, provenance,
135+
madId)
136+
|
137+
not exists(string s | p = groupPrefix() + s) and package = p
138+
or
139+
// Also look for models that are defined for a group that `package` is part of.
140+
p = getGroup(package)
141+
)
136142
}
137143

138144
/**
@@ -144,12 +150,15 @@ predicate summaryModel(
144150
string package, string type, boolean subtypes, string name, string signature, string ext,
145151
string input, string output, string kind, string provenance, QlBuiltins::ExtensionId madId
146152
) {
147-
FlowExtensions::summaryModel(package, type, subtypes, name, signature, ext, input, output, kind,
148-
provenance, madId)
149-
or
150-
// Also look for models that are defined for a group that `package` is part of.
151-
FlowExtensions::summaryModel(getGroup(package), type, subtypes, name, signature, ext, input,
152-
output, kind, provenance, madId)
153+
exists(string p |
154+
FlowExtensions::summaryModel(p, type, subtypes, name, signature, ext, input, output, kind,
155+
provenance, madId)
156+
|
157+
not exists(string s | p = groupPrefix() + s) and package = p
158+
or
159+
// Also look for models that are defined for a group that `package` is part of.
160+
p = getGroup(package)
161+
)
153162
}
154163

155164
/**
@@ -160,10 +169,12 @@ predicate summaryModel(
160169
predicate neutralModel(
161170
string package, string type, string name, string signature, string kind, string provenance
162171
) {
163-
FlowExtensions::neutralModel(package, type, name, signature, kind, provenance)
164-
or
165-
// Also look for models that are defined for a group that `package` is part of.
166-
FlowExtensions::neutralModel(getGroup(package), type, name, signature, kind, provenance)
172+
exists(string p | FlowExtensions::neutralModel(p, type, name, signature, kind, provenance) |
173+
not exists(string s | p = groupPrefix() + s) and package = p
174+
or
175+
// Also look for models that are defined for a group that `package` is part of.
176+
p = getGroup(package)
177+
)
167178
}
168179

169180
/**

0 commit comments

Comments
 (0)