From 4a9aeacb69d8eb3d7e9b89689ad4e910baf628ba Mon Sep 17 00:00:00 2001 From: Owen Mansel-Chan Date: Wed, 13 Apr 2022 16:15:00 +0100 Subject: [PATCH] Find callee through function instantiation --- ql/lib/semmle/go/dataflow/internal/DataFlowNodes.qll | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/ql/lib/semmle/go/dataflow/internal/DataFlowNodes.qll b/ql/lib/semmle/go/dataflow/internal/DataFlowNodes.qll index 91e97270..80c94caf 100644 --- a/ql/lib/semmle/go/dataflow/internal/DataFlowNodes.qll +++ b/ql/lib/semmle/go/dataflow/internal/DataFlowNodes.qll @@ -443,7 +443,8 @@ module Public { */ private DataFlow::Node getACalleeSource(DataFlow::CallNode cn) { result = cn.getCalleeNode() or - basicLocalFlowStep(result, getACalleeSource(cn)) + basicLocalFlowStep(result, getACalleeSource(cn)) or + result.asExpr() = getACalleeSource(cn).asExpr().(GenericFunctionInstantiationExpr).getBase() } /** A data flow node that represents a call. */