From 0edb30638adcf4227ae537b529cfdb8ef8374a83 Mon Sep 17 00:00:00 2001 From: Asger F Date: Mon, 16 Dec 2024 13:14:27 +0100 Subject: [PATCH] Apply suggestions from code review Co-authored-by: Anders Schack-Mulligen --- shared/dataflow/codeql/dataflow/DataFlow.qll | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/shared/dataflow/codeql/dataflow/DataFlow.qll b/shared/dataflow/codeql/dataflow/DataFlow.qll index 65fa3df0fff..0c39f8873c1 100644 --- a/shared/dataflow/codeql/dataflow/DataFlow.qll +++ b/shared/dataflow/codeql/dataflow/DataFlow.qll @@ -996,8 +996,12 @@ module DataFlowMake Lang> { predicate discriminatedPathNode(InputPathNode pathNode) { discriminatedPathNode(pathNode, _) } } + private InputPathNode getUniqPathNode(Node node, string toString) { + result = unique(InputPathNode pathNode | pathNode = getAPathNode(node, toString)) + } + private predicate initialCandidate(Node node, string toString) { - exists(getAPathNode(node, toString)) + exists(getAPathNode(node, toString)) and not exists(getUniqPathNode(node, toString)) } private module Pass1 = @@ -1017,7 +1021,7 @@ module DataFlowMake Lang> { MakeDiscriminatorPass; private newtype TPathNode = - TPreservedPathNode(InputPathNode node) { Pass2::discriminatedPathNode(node) } or + TPreservedPathNode(InputPathNode node) { Pass2::discriminatedPathNode(node) or node = getUniqPathNode(_, _) } or TCollapsedPathNode(Node node, string toString) { initialCandidate(node, toString) and not Pass2::discriminatedPair(node, toString)