From 9842445b52ae48baad705815958a4569507dcf02 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Tue, 7 May 2024 12:10:27 +0100 Subject: [PATCH 1/2] Fix `getType` on `ImplicitVarArgsSlice` It was not defined for built-in functions or for functions called via a function variable. --- go/ql/lib/semmle/go/dataflow/internal/DataFlowNodes.qll | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/go/ql/lib/semmle/go/dataflow/internal/DataFlowNodes.qll b/go/ql/lib/semmle/go/dataflow/internal/DataFlowNodes.qll index 6b230bc728f8..947491b44bbc 100644 --- a/go/ql/lib/semmle/go/dataflow/internal/DataFlowNodes.qll +++ b/go/ql/lib/semmle/go/dataflow/internal/DataFlowNodes.qll @@ -455,8 +455,8 @@ module Public { CallNode getCallNode() { result = call } override Type getType() { - exists(Function f | f = call.getTarget() | - result = f.getParameterType(f.getNumParameter() - 1) + exists(SignatureType t | t = call.getCall().getCalleeType() | + result = t.getParameterType(t.getNumParameter() - 1) ) } From 4d42a88c3cb7bf5c5802fb993e560011eeba3987 Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Wed, 8 May 2024 15:31:22 +0100 Subject: [PATCH 2/2] Add change note --- .../2024-05-08-fix-flow-variadic-builtin-variable.md | 4 ++++ 1 file changed, 4 insertions(+) create mode 100644 go/ql/lib/change-notes/2024-05-08-fix-flow-variadic-builtin-variable.md diff --git a/go/ql/lib/change-notes/2024-05-08-fix-flow-variadic-builtin-variable.md b/go/ql/lib/change-notes/2024-05-08-fix-flow-variadic-builtin-variable.md new file mode 100644 index 000000000000..9d9dabb34a2e --- /dev/null +++ b/go/ql/lib/change-notes/2024-05-08-fix-flow-variadic-builtin-variable.md @@ -0,0 +1,4 @@ +--- +category: minorAnalysis +--- +* Fixed a bug that stopped data flow from being followed through variadic arguments to built-in functions or to functions called using a variable.