Merge pull request #16619 from owen-mc/go/fix/response-writer-variadic

Go: Fix bug in ResponseWriter for variadic MaD
This commit is contained in:
Owen Mansel-Chan
2024-06-04 05:36:58 +01:00
committed by GitHub

View File

@@ -123,9 +123,19 @@ module NetHttp {
private DataFlow::Node getSummaryInputOrOutputNode(
DataFlow::CallNode call, SummaryComponentStack stack
) {
exists(int n |
stack = SummaryComponentStack::argument(n) and
result = call.getArgument(n)
exists(int n | result = call.getSyntacticArgument(n) |
if result = call.getImplicitVarargsArgument(_)
then
exists(
int lastParamIndex, SummaryComponentStack varArgsSliceArgument,
SummaryComponent arrayContentSC, DataFlow::ArrayContent arrayContent
|
lastParamIndex = call.getCall().getCalleeType().getNumParameter() - 1 and
varArgsSliceArgument = SummaryComponentStack::argument(lastParamIndex) and
arrayContentSC = SummaryComponent::content(arrayContent) and
stack = SummaryComponentStack::push(arrayContentSC, varArgsSliceArgument)
)
else stack = SummaryComponentStack::argument(n)
)
or
stack = SummaryComponentStack::argument(-1) and