diff --git a/powershell/ql/lib/semmle/code/powershell/ApiGraphs.qll b/powershell/ql/lib/semmle/code/powershell/ApiGraphs.qll index 8634161e5a0..9ee600c82cb 100644 --- a/powershell/ql/lib/semmle/code/powershell/ApiGraphs.qll +++ b/powershell/ql/lib/semmle/code/powershell/ApiGraphs.qll @@ -527,8 +527,18 @@ module API { pred = MkNamespaceOfTypeNameNode(typeName) and succ = getForwardStartNode(typeName) ) - // or - // TODO: Handle getAMember when the predecessor is a MkUsingNode? + or + pred = MkRoot() and + exists(DataFlow::AutomaticVariableNode automatic | + automatic.getName() = name and + succ = getForwardStartNode(automatic) + ) + or + exists(MemberExprReadAccess read | + read.getMemberName().toLowerCase() = name and + pred = getForwardEndNode(getALocalSourceStrict(getNodeFromExpr(read.getQualifier()))) and + succ = getForwardStartNode(getNodeFromExpr(read)) + ) } cached