From eb86bceb4d786cc23f86b9755a1c8d56f844b301 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Fri, 18 Jun 2021 10:18:47 +0200 Subject: [PATCH] Address review comments --- .../semmle/code/cpp/dataflow/internal/DataFlowImpl.qll | 8 ++++++-- .../semmle/code/cpp/dataflow/internal/DataFlowImpl2.qll | 8 ++++++-- .../semmle/code/cpp/dataflow/internal/DataFlowImpl3.qll | 8 ++++++-- .../semmle/code/cpp/dataflow/internal/DataFlowImpl4.qll | 8 ++++++-- .../code/cpp/dataflow/internal/DataFlowImplLocal.qll | 8 ++++++-- .../semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll | 8 ++++++-- .../code/cpp/ir/dataflow/internal/DataFlowImpl2.qll | 8 ++++++-- .../code/cpp/ir/dataflow/internal/DataFlowImpl3.qll | 8 ++++++-- .../code/cpp/ir/dataflow/internal/DataFlowImpl4.qll | 8 ++++++-- .../semmle/code/csharp/dataflow/internal/DataFlowImpl.qll | 8 ++++++-- .../code/csharp/dataflow/internal/DataFlowImpl2.qll | 8 ++++++-- .../code/csharp/dataflow/internal/DataFlowImpl3.qll | 8 ++++++-- .../code/csharp/dataflow/internal/DataFlowImpl4.qll | 8 ++++++-- .../code/csharp/dataflow/internal/DataFlowImpl5.qll | 8 ++++++-- .../semmle/code/java/dataflow/internal/DataFlowImpl.qll | 8 ++++++-- .../semmle/code/java/dataflow/internal/DataFlowImpl2.qll | 8 ++++++-- .../semmle/code/java/dataflow/internal/DataFlowImpl3.qll | 8 ++++++-- .../semmle/code/java/dataflow/internal/DataFlowImpl4.qll | 8 ++++++-- .../semmle/code/java/dataflow/internal/DataFlowImpl5.qll | 8 ++++++-- .../semmle/code/java/dataflow/internal/DataFlowImpl6.qll | 8 ++++++-- .../semmle/python/dataflow/new/internal/DataFlowImpl.qll | 8 ++++++-- .../semmle/python/dataflow/new/internal/DataFlowImpl2.qll | 8 ++++++-- .../semmle/python/dataflow/new/internal/DataFlowImpl3.qll | 8 ++++++-- .../semmle/python/dataflow/new/internal/DataFlowImpl4.qll | 8 ++++++-- 24 files changed, 144 insertions(+), 48 deletions(-) diff --git a/cpp/ql/src/semmle/code/cpp/dataflow/internal/DataFlowImpl.qll b/cpp/ql/src/semmle/code/cpp/dataflow/internal/DataFlowImpl.qll index 3721374f320..4f54d9671c9 100644 --- a/cpp/ql/src/semmle/code/cpp/dataflow/internal/DataFlowImpl.qll +++ b/cpp/ql/src/semmle/code/cpp/dataflow/internal/DataFlowImpl.qll @@ -2220,7 +2220,9 @@ private module Stage4 { bindingset[node, cc, config] private LocalCc getLocalCc(Node node, Cc cc, Configuration config) { localFlowEntry(node, config) and - result = getLocalCallContext(pragma[only_bind_into](cc), getNodeEnclosingCallable(node)) + result = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + getNodeEnclosingCallable(node)) } private predicate localStep( @@ -3255,7 +3257,9 @@ private predicate pathStep(PathNodeMid mid, Node node, CallContext cc, SummaryCt conf = mid.getConfiguration() and cc = mid.getCallContext() and sc = mid.getSummaryCtx() and - localCC = getLocalCallContext(pragma[only_bind_into](cc), getNodeEnclosingCallable(midnode)) and + localCC = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + getNodeEnclosingCallable(midnode)) and ap0 = mid.getAp() | localFlowBigStep(midnode, node, true, _, conf, localCC) and diff --git a/cpp/ql/src/semmle/code/cpp/dataflow/internal/DataFlowImpl2.qll b/cpp/ql/src/semmle/code/cpp/dataflow/internal/DataFlowImpl2.qll index 3721374f320..4f54d9671c9 100644 --- a/cpp/ql/src/semmle/code/cpp/dataflow/internal/DataFlowImpl2.qll +++ b/cpp/ql/src/semmle/code/cpp/dataflow/internal/DataFlowImpl2.qll @@ -2220,7 +2220,9 @@ private module Stage4 { bindingset[node, cc, config] private LocalCc getLocalCc(Node node, Cc cc, Configuration config) { localFlowEntry(node, config) and - result = getLocalCallContext(pragma[only_bind_into](cc), getNodeEnclosingCallable(node)) + result = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + getNodeEnclosingCallable(node)) } private predicate localStep( @@ -3255,7 +3257,9 @@ private predicate pathStep(PathNodeMid mid, Node node, CallContext cc, SummaryCt conf = mid.getConfiguration() and cc = mid.getCallContext() and sc = mid.getSummaryCtx() and - localCC = getLocalCallContext(pragma[only_bind_into](cc), getNodeEnclosingCallable(midnode)) and + localCC = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + getNodeEnclosingCallable(midnode)) and ap0 = mid.getAp() | localFlowBigStep(midnode, node, true, _, conf, localCC) and diff --git a/cpp/ql/src/semmle/code/cpp/dataflow/internal/DataFlowImpl3.qll b/cpp/ql/src/semmle/code/cpp/dataflow/internal/DataFlowImpl3.qll index 3721374f320..4f54d9671c9 100644 --- a/cpp/ql/src/semmle/code/cpp/dataflow/internal/DataFlowImpl3.qll +++ b/cpp/ql/src/semmle/code/cpp/dataflow/internal/DataFlowImpl3.qll @@ -2220,7 +2220,9 @@ private module Stage4 { bindingset[node, cc, config] private LocalCc getLocalCc(Node node, Cc cc, Configuration config) { localFlowEntry(node, config) and - result = getLocalCallContext(pragma[only_bind_into](cc), getNodeEnclosingCallable(node)) + result = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + getNodeEnclosingCallable(node)) } private predicate localStep( @@ -3255,7 +3257,9 @@ private predicate pathStep(PathNodeMid mid, Node node, CallContext cc, SummaryCt conf = mid.getConfiguration() and cc = mid.getCallContext() and sc = mid.getSummaryCtx() and - localCC = getLocalCallContext(pragma[only_bind_into](cc), getNodeEnclosingCallable(midnode)) and + localCC = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + getNodeEnclosingCallable(midnode)) and ap0 = mid.getAp() | localFlowBigStep(midnode, node, true, _, conf, localCC) and diff --git a/cpp/ql/src/semmle/code/cpp/dataflow/internal/DataFlowImpl4.qll b/cpp/ql/src/semmle/code/cpp/dataflow/internal/DataFlowImpl4.qll index 3721374f320..4f54d9671c9 100644 --- a/cpp/ql/src/semmle/code/cpp/dataflow/internal/DataFlowImpl4.qll +++ b/cpp/ql/src/semmle/code/cpp/dataflow/internal/DataFlowImpl4.qll @@ -2220,7 +2220,9 @@ private module Stage4 { bindingset[node, cc, config] private LocalCc getLocalCc(Node node, Cc cc, Configuration config) { localFlowEntry(node, config) and - result = getLocalCallContext(pragma[only_bind_into](cc), getNodeEnclosingCallable(node)) + result = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + getNodeEnclosingCallable(node)) } private predicate localStep( @@ -3255,7 +3257,9 @@ private predicate pathStep(PathNodeMid mid, Node node, CallContext cc, SummaryCt conf = mid.getConfiguration() and cc = mid.getCallContext() and sc = mid.getSummaryCtx() and - localCC = getLocalCallContext(pragma[only_bind_into](cc), getNodeEnclosingCallable(midnode)) and + localCC = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + getNodeEnclosingCallable(midnode)) and ap0 = mid.getAp() | localFlowBigStep(midnode, node, true, _, conf, localCC) and diff --git a/cpp/ql/src/semmle/code/cpp/dataflow/internal/DataFlowImplLocal.qll b/cpp/ql/src/semmle/code/cpp/dataflow/internal/DataFlowImplLocal.qll index 3721374f320..4f54d9671c9 100644 --- a/cpp/ql/src/semmle/code/cpp/dataflow/internal/DataFlowImplLocal.qll +++ b/cpp/ql/src/semmle/code/cpp/dataflow/internal/DataFlowImplLocal.qll @@ -2220,7 +2220,9 @@ private module Stage4 { bindingset[node, cc, config] private LocalCc getLocalCc(Node node, Cc cc, Configuration config) { localFlowEntry(node, config) and - result = getLocalCallContext(pragma[only_bind_into](cc), getNodeEnclosingCallable(node)) + result = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + getNodeEnclosingCallable(node)) } private predicate localStep( @@ -3255,7 +3257,9 @@ private predicate pathStep(PathNodeMid mid, Node node, CallContext cc, SummaryCt conf = mid.getConfiguration() and cc = mid.getCallContext() and sc = mid.getSummaryCtx() and - localCC = getLocalCallContext(pragma[only_bind_into](cc), getNodeEnclosingCallable(midnode)) and + localCC = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + getNodeEnclosingCallable(midnode)) and ap0 = mid.getAp() | localFlowBigStep(midnode, node, true, _, conf, localCC) and diff --git a/cpp/ql/src/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll b/cpp/ql/src/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll index 3721374f320..4f54d9671c9 100644 --- a/cpp/ql/src/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll +++ b/cpp/ql/src/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll @@ -2220,7 +2220,9 @@ private module Stage4 { bindingset[node, cc, config] private LocalCc getLocalCc(Node node, Cc cc, Configuration config) { localFlowEntry(node, config) and - result = getLocalCallContext(pragma[only_bind_into](cc), getNodeEnclosingCallable(node)) + result = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + getNodeEnclosingCallable(node)) } private predicate localStep( @@ -3255,7 +3257,9 @@ private predicate pathStep(PathNodeMid mid, Node node, CallContext cc, SummaryCt conf = mid.getConfiguration() and cc = mid.getCallContext() and sc = mid.getSummaryCtx() and - localCC = getLocalCallContext(pragma[only_bind_into](cc), getNodeEnclosingCallable(midnode)) and + localCC = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + getNodeEnclosingCallable(midnode)) and ap0 = mid.getAp() | localFlowBigStep(midnode, node, true, _, conf, localCC) and diff --git a/cpp/ql/src/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl2.qll b/cpp/ql/src/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl2.qll index 3721374f320..4f54d9671c9 100644 --- a/cpp/ql/src/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl2.qll +++ b/cpp/ql/src/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl2.qll @@ -2220,7 +2220,9 @@ private module Stage4 { bindingset[node, cc, config] private LocalCc getLocalCc(Node node, Cc cc, Configuration config) { localFlowEntry(node, config) and - result = getLocalCallContext(pragma[only_bind_into](cc), getNodeEnclosingCallable(node)) + result = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + getNodeEnclosingCallable(node)) } private predicate localStep( @@ -3255,7 +3257,9 @@ private predicate pathStep(PathNodeMid mid, Node node, CallContext cc, SummaryCt conf = mid.getConfiguration() and cc = mid.getCallContext() and sc = mid.getSummaryCtx() and - localCC = getLocalCallContext(pragma[only_bind_into](cc), getNodeEnclosingCallable(midnode)) and + localCC = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + getNodeEnclosingCallable(midnode)) and ap0 = mid.getAp() | localFlowBigStep(midnode, node, true, _, conf, localCC) and diff --git a/cpp/ql/src/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl3.qll b/cpp/ql/src/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl3.qll index 3721374f320..4f54d9671c9 100644 --- a/cpp/ql/src/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl3.qll +++ b/cpp/ql/src/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl3.qll @@ -2220,7 +2220,9 @@ private module Stage4 { bindingset[node, cc, config] private LocalCc getLocalCc(Node node, Cc cc, Configuration config) { localFlowEntry(node, config) and - result = getLocalCallContext(pragma[only_bind_into](cc), getNodeEnclosingCallable(node)) + result = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + getNodeEnclosingCallable(node)) } private predicate localStep( @@ -3255,7 +3257,9 @@ private predicate pathStep(PathNodeMid mid, Node node, CallContext cc, SummaryCt conf = mid.getConfiguration() and cc = mid.getCallContext() and sc = mid.getSummaryCtx() and - localCC = getLocalCallContext(pragma[only_bind_into](cc), getNodeEnclosingCallable(midnode)) and + localCC = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + getNodeEnclosingCallable(midnode)) and ap0 = mid.getAp() | localFlowBigStep(midnode, node, true, _, conf, localCC) and diff --git a/cpp/ql/src/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl4.qll b/cpp/ql/src/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl4.qll index 3721374f320..4f54d9671c9 100644 --- a/cpp/ql/src/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl4.qll +++ b/cpp/ql/src/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl4.qll @@ -2220,7 +2220,9 @@ private module Stage4 { bindingset[node, cc, config] private LocalCc getLocalCc(Node node, Cc cc, Configuration config) { localFlowEntry(node, config) and - result = getLocalCallContext(pragma[only_bind_into](cc), getNodeEnclosingCallable(node)) + result = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + getNodeEnclosingCallable(node)) } private predicate localStep( @@ -3255,7 +3257,9 @@ private predicate pathStep(PathNodeMid mid, Node node, CallContext cc, SummaryCt conf = mid.getConfiguration() and cc = mid.getCallContext() and sc = mid.getSummaryCtx() and - localCC = getLocalCallContext(pragma[only_bind_into](cc), getNodeEnclosingCallable(midnode)) and + localCC = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + getNodeEnclosingCallable(midnode)) and ap0 = mid.getAp() | localFlowBigStep(midnode, node, true, _, conf, localCC) and diff --git a/csharp/ql/src/semmle/code/csharp/dataflow/internal/DataFlowImpl.qll b/csharp/ql/src/semmle/code/csharp/dataflow/internal/DataFlowImpl.qll index 3721374f320..4f54d9671c9 100644 --- a/csharp/ql/src/semmle/code/csharp/dataflow/internal/DataFlowImpl.qll +++ b/csharp/ql/src/semmle/code/csharp/dataflow/internal/DataFlowImpl.qll @@ -2220,7 +2220,9 @@ private module Stage4 { bindingset[node, cc, config] private LocalCc getLocalCc(Node node, Cc cc, Configuration config) { localFlowEntry(node, config) and - result = getLocalCallContext(pragma[only_bind_into](cc), getNodeEnclosingCallable(node)) + result = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + getNodeEnclosingCallable(node)) } private predicate localStep( @@ -3255,7 +3257,9 @@ private predicate pathStep(PathNodeMid mid, Node node, CallContext cc, SummaryCt conf = mid.getConfiguration() and cc = mid.getCallContext() and sc = mid.getSummaryCtx() and - localCC = getLocalCallContext(pragma[only_bind_into](cc), getNodeEnclosingCallable(midnode)) and + localCC = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + getNodeEnclosingCallable(midnode)) and ap0 = mid.getAp() | localFlowBigStep(midnode, node, true, _, conf, localCC) and diff --git a/csharp/ql/src/semmle/code/csharp/dataflow/internal/DataFlowImpl2.qll b/csharp/ql/src/semmle/code/csharp/dataflow/internal/DataFlowImpl2.qll index 3721374f320..4f54d9671c9 100644 --- a/csharp/ql/src/semmle/code/csharp/dataflow/internal/DataFlowImpl2.qll +++ b/csharp/ql/src/semmle/code/csharp/dataflow/internal/DataFlowImpl2.qll @@ -2220,7 +2220,9 @@ private module Stage4 { bindingset[node, cc, config] private LocalCc getLocalCc(Node node, Cc cc, Configuration config) { localFlowEntry(node, config) and - result = getLocalCallContext(pragma[only_bind_into](cc), getNodeEnclosingCallable(node)) + result = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + getNodeEnclosingCallable(node)) } private predicate localStep( @@ -3255,7 +3257,9 @@ private predicate pathStep(PathNodeMid mid, Node node, CallContext cc, SummaryCt conf = mid.getConfiguration() and cc = mid.getCallContext() and sc = mid.getSummaryCtx() and - localCC = getLocalCallContext(pragma[only_bind_into](cc), getNodeEnclosingCallable(midnode)) and + localCC = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + getNodeEnclosingCallable(midnode)) and ap0 = mid.getAp() | localFlowBigStep(midnode, node, true, _, conf, localCC) and diff --git a/csharp/ql/src/semmle/code/csharp/dataflow/internal/DataFlowImpl3.qll b/csharp/ql/src/semmle/code/csharp/dataflow/internal/DataFlowImpl3.qll index 3721374f320..4f54d9671c9 100644 --- a/csharp/ql/src/semmle/code/csharp/dataflow/internal/DataFlowImpl3.qll +++ b/csharp/ql/src/semmle/code/csharp/dataflow/internal/DataFlowImpl3.qll @@ -2220,7 +2220,9 @@ private module Stage4 { bindingset[node, cc, config] private LocalCc getLocalCc(Node node, Cc cc, Configuration config) { localFlowEntry(node, config) and - result = getLocalCallContext(pragma[only_bind_into](cc), getNodeEnclosingCallable(node)) + result = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + getNodeEnclosingCallable(node)) } private predicate localStep( @@ -3255,7 +3257,9 @@ private predicate pathStep(PathNodeMid mid, Node node, CallContext cc, SummaryCt conf = mid.getConfiguration() and cc = mid.getCallContext() and sc = mid.getSummaryCtx() and - localCC = getLocalCallContext(pragma[only_bind_into](cc), getNodeEnclosingCallable(midnode)) and + localCC = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + getNodeEnclosingCallable(midnode)) and ap0 = mid.getAp() | localFlowBigStep(midnode, node, true, _, conf, localCC) and diff --git a/csharp/ql/src/semmle/code/csharp/dataflow/internal/DataFlowImpl4.qll b/csharp/ql/src/semmle/code/csharp/dataflow/internal/DataFlowImpl4.qll index 3721374f320..4f54d9671c9 100644 --- a/csharp/ql/src/semmle/code/csharp/dataflow/internal/DataFlowImpl4.qll +++ b/csharp/ql/src/semmle/code/csharp/dataflow/internal/DataFlowImpl4.qll @@ -2220,7 +2220,9 @@ private module Stage4 { bindingset[node, cc, config] private LocalCc getLocalCc(Node node, Cc cc, Configuration config) { localFlowEntry(node, config) and - result = getLocalCallContext(pragma[only_bind_into](cc), getNodeEnclosingCallable(node)) + result = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + getNodeEnclosingCallable(node)) } private predicate localStep( @@ -3255,7 +3257,9 @@ private predicate pathStep(PathNodeMid mid, Node node, CallContext cc, SummaryCt conf = mid.getConfiguration() and cc = mid.getCallContext() and sc = mid.getSummaryCtx() and - localCC = getLocalCallContext(pragma[only_bind_into](cc), getNodeEnclosingCallable(midnode)) and + localCC = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + getNodeEnclosingCallable(midnode)) and ap0 = mid.getAp() | localFlowBigStep(midnode, node, true, _, conf, localCC) and diff --git a/csharp/ql/src/semmle/code/csharp/dataflow/internal/DataFlowImpl5.qll b/csharp/ql/src/semmle/code/csharp/dataflow/internal/DataFlowImpl5.qll index 3721374f320..4f54d9671c9 100644 --- a/csharp/ql/src/semmle/code/csharp/dataflow/internal/DataFlowImpl5.qll +++ b/csharp/ql/src/semmle/code/csharp/dataflow/internal/DataFlowImpl5.qll @@ -2220,7 +2220,9 @@ private module Stage4 { bindingset[node, cc, config] private LocalCc getLocalCc(Node node, Cc cc, Configuration config) { localFlowEntry(node, config) and - result = getLocalCallContext(pragma[only_bind_into](cc), getNodeEnclosingCallable(node)) + result = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + getNodeEnclosingCallable(node)) } private predicate localStep( @@ -3255,7 +3257,9 @@ private predicate pathStep(PathNodeMid mid, Node node, CallContext cc, SummaryCt conf = mid.getConfiguration() and cc = mid.getCallContext() and sc = mid.getSummaryCtx() and - localCC = getLocalCallContext(pragma[only_bind_into](cc), getNodeEnclosingCallable(midnode)) and + localCC = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + getNodeEnclosingCallable(midnode)) and ap0 = mid.getAp() | localFlowBigStep(midnode, node, true, _, conf, localCC) and diff --git a/java/ql/src/semmle/code/java/dataflow/internal/DataFlowImpl.qll b/java/ql/src/semmle/code/java/dataflow/internal/DataFlowImpl.qll index 3721374f320..4f54d9671c9 100644 --- a/java/ql/src/semmle/code/java/dataflow/internal/DataFlowImpl.qll +++ b/java/ql/src/semmle/code/java/dataflow/internal/DataFlowImpl.qll @@ -2220,7 +2220,9 @@ private module Stage4 { bindingset[node, cc, config] private LocalCc getLocalCc(Node node, Cc cc, Configuration config) { localFlowEntry(node, config) and - result = getLocalCallContext(pragma[only_bind_into](cc), getNodeEnclosingCallable(node)) + result = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + getNodeEnclosingCallable(node)) } private predicate localStep( @@ -3255,7 +3257,9 @@ private predicate pathStep(PathNodeMid mid, Node node, CallContext cc, SummaryCt conf = mid.getConfiguration() and cc = mid.getCallContext() and sc = mid.getSummaryCtx() and - localCC = getLocalCallContext(pragma[only_bind_into](cc), getNodeEnclosingCallable(midnode)) and + localCC = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + getNodeEnclosingCallable(midnode)) and ap0 = mid.getAp() | localFlowBigStep(midnode, node, true, _, conf, localCC) and diff --git a/java/ql/src/semmle/code/java/dataflow/internal/DataFlowImpl2.qll b/java/ql/src/semmle/code/java/dataflow/internal/DataFlowImpl2.qll index 3721374f320..4f54d9671c9 100644 --- a/java/ql/src/semmle/code/java/dataflow/internal/DataFlowImpl2.qll +++ b/java/ql/src/semmle/code/java/dataflow/internal/DataFlowImpl2.qll @@ -2220,7 +2220,9 @@ private module Stage4 { bindingset[node, cc, config] private LocalCc getLocalCc(Node node, Cc cc, Configuration config) { localFlowEntry(node, config) and - result = getLocalCallContext(pragma[only_bind_into](cc), getNodeEnclosingCallable(node)) + result = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + getNodeEnclosingCallable(node)) } private predicate localStep( @@ -3255,7 +3257,9 @@ private predicate pathStep(PathNodeMid mid, Node node, CallContext cc, SummaryCt conf = mid.getConfiguration() and cc = mid.getCallContext() and sc = mid.getSummaryCtx() and - localCC = getLocalCallContext(pragma[only_bind_into](cc), getNodeEnclosingCallable(midnode)) and + localCC = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + getNodeEnclosingCallable(midnode)) and ap0 = mid.getAp() | localFlowBigStep(midnode, node, true, _, conf, localCC) and diff --git a/java/ql/src/semmle/code/java/dataflow/internal/DataFlowImpl3.qll b/java/ql/src/semmle/code/java/dataflow/internal/DataFlowImpl3.qll index 3721374f320..4f54d9671c9 100644 --- a/java/ql/src/semmle/code/java/dataflow/internal/DataFlowImpl3.qll +++ b/java/ql/src/semmle/code/java/dataflow/internal/DataFlowImpl3.qll @@ -2220,7 +2220,9 @@ private module Stage4 { bindingset[node, cc, config] private LocalCc getLocalCc(Node node, Cc cc, Configuration config) { localFlowEntry(node, config) and - result = getLocalCallContext(pragma[only_bind_into](cc), getNodeEnclosingCallable(node)) + result = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + getNodeEnclosingCallable(node)) } private predicate localStep( @@ -3255,7 +3257,9 @@ private predicate pathStep(PathNodeMid mid, Node node, CallContext cc, SummaryCt conf = mid.getConfiguration() and cc = mid.getCallContext() and sc = mid.getSummaryCtx() and - localCC = getLocalCallContext(pragma[only_bind_into](cc), getNodeEnclosingCallable(midnode)) and + localCC = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + getNodeEnclosingCallable(midnode)) and ap0 = mid.getAp() | localFlowBigStep(midnode, node, true, _, conf, localCC) and diff --git a/java/ql/src/semmle/code/java/dataflow/internal/DataFlowImpl4.qll b/java/ql/src/semmle/code/java/dataflow/internal/DataFlowImpl4.qll index 3721374f320..4f54d9671c9 100644 --- a/java/ql/src/semmle/code/java/dataflow/internal/DataFlowImpl4.qll +++ b/java/ql/src/semmle/code/java/dataflow/internal/DataFlowImpl4.qll @@ -2220,7 +2220,9 @@ private module Stage4 { bindingset[node, cc, config] private LocalCc getLocalCc(Node node, Cc cc, Configuration config) { localFlowEntry(node, config) and - result = getLocalCallContext(pragma[only_bind_into](cc), getNodeEnclosingCallable(node)) + result = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + getNodeEnclosingCallable(node)) } private predicate localStep( @@ -3255,7 +3257,9 @@ private predicate pathStep(PathNodeMid mid, Node node, CallContext cc, SummaryCt conf = mid.getConfiguration() and cc = mid.getCallContext() and sc = mid.getSummaryCtx() and - localCC = getLocalCallContext(pragma[only_bind_into](cc), getNodeEnclosingCallable(midnode)) and + localCC = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + getNodeEnclosingCallable(midnode)) and ap0 = mid.getAp() | localFlowBigStep(midnode, node, true, _, conf, localCC) and diff --git a/java/ql/src/semmle/code/java/dataflow/internal/DataFlowImpl5.qll b/java/ql/src/semmle/code/java/dataflow/internal/DataFlowImpl5.qll index 3721374f320..4f54d9671c9 100644 --- a/java/ql/src/semmle/code/java/dataflow/internal/DataFlowImpl5.qll +++ b/java/ql/src/semmle/code/java/dataflow/internal/DataFlowImpl5.qll @@ -2220,7 +2220,9 @@ private module Stage4 { bindingset[node, cc, config] private LocalCc getLocalCc(Node node, Cc cc, Configuration config) { localFlowEntry(node, config) and - result = getLocalCallContext(pragma[only_bind_into](cc), getNodeEnclosingCallable(node)) + result = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + getNodeEnclosingCallable(node)) } private predicate localStep( @@ -3255,7 +3257,9 @@ private predicate pathStep(PathNodeMid mid, Node node, CallContext cc, SummaryCt conf = mid.getConfiguration() and cc = mid.getCallContext() and sc = mid.getSummaryCtx() and - localCC = getLocalCallContext(pragma[only_bind_into](cc), getNodeEnclosingCallable(midnode)) and + localCC = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + getNodeEnclosingCallable(midnode)) and ap0 = mid.getAp() | localFlowBigStep(midnode, node, true, _, conf, localCC) and diff --git a/java/ql/src/semmle/code/java/dataflow/internal/DataFlowImpl6.qll b/java/ql/src/semmle/code/java/dataflow/internal/DataFlowImpl6.qll index 3721374f320..4f54d9671c9 100644 --- a/java/ql/src/semmle/code/java/dataflow/internal/DataFlowImpl6.qll +++ b/java/ql/src/semmle/code/java/dataflow/internal/DataFlowImpl6.qll @@ -2220,7 +2220,9 @@ private module Stage4 { bindingset[node, cc, config] private LocalCc getLocalCc(Node node, Cc cc, Configuration config) { localFlowEntry(node, config) and - result = getLocalCallContext(pragma[only_bind_into](cc), getNodeEnclosingCallable(node)) + result = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + getNodeEnclosingCallable(node)) } private predicate localStep( @@ -3255,7 +3257,9 @@ private predicate pathStep(PathNodeMid mid, Node node, CallContext cc, SummaryCt conf = mid.getConfiguration() and cc = mid.getCallContext() and sc = mid.getSummaryCtx() and - localCC = getLocalCallContext(pragma[only_bind_into](cc), getNodeEnclosingCallable(midnode)) and + localCC = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + getNodeEnclosingCallable(midnode)) and ap0 = mid.getAp() | localFlowBigStep(midnode, node, true, _, conf, localCC) and diff --git a/python/ql/src/semmle/python/dataflow/new/internal/DataFlowImpl.qll b/python/ql/src/semmle/python/dataflow/new/internal/DataFlowImpl.qll index 3721374f320..4f54d9671c9 100644 --- a/python/ql/src/semmle/python/dataflow/new/internal/DataFlowImpl.qll +++ b/python/ql/src/semmle/python/dataflow/new/internal/DataFlowImpl.qll @@ -2220,7 +2220,9 @@ private module Stage4 { bindingset[node, cc, config] private LocalCc getLocalCc(Node node, Cc cc, Configuration config) { localFlowEntry(node, config) and - result = getLocalCallContext(pragma[only_bind_into](cc), getNodeEnclosingCallable(node)) + result = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + getNodeEnclosingCallable(node)) } private predicate localStep( @@ -3255,7 +3257,9 @@ private predicate pathStep(PathNodeMid mid, Node node, CallContext cc, SummaryCt conf = mid.getConfiguration() and cc = mid.getCallContext() and sc = mid.getSummaryCtx() and - localCC = getLocalCallContext(pragma[only_bind_into](cc), getNodeEnclosingCallable(midnode)) and + localCC = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + getNodeEnclosingCallable(midnode)) and ap0 = mid.getAp() | localFlowBigStep(midnode, node, true, _, conf, localCC) and diff --git a/python/ql/src/semmle/python/dataflow/new/internal/DataFlowImpl2.qll b/python/ql/src/semmle/python/dataflow/new/internal/DataFlowImpl2.qll index 3721374f320..4f54d9671c9 100644 --- a/python/ql/src/semmle/python/dataflow/new/internal/DataFlowImpl2.qll +++ b/python/ql/src/semmle/python/dataflow/new/internal/DataFlowImpl2.qll @@ -2220,7 +2220,9 @@ private module Stage4 { bindingset[node, cc, config] private LocalCc getLocalCc(Node node, Cc cc, Configuration config) { localFlowEntry(node, config) and - result = getLocalCallContext(pragma[only_bind_into](cc), getNodeEnclosingCallable(node)) + result = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + getNodeEnclosingCallable(node)) } private predicate localStep( @@ -3255,7 +3257,9 @@ private predicate pathStep(PathNodeMid mid, Node node, CallContext cc, SummaryCt conf = mid.getConfiguration() and cc = mid.getCallContext() and sc = mid.getSummaryCtx() and - localCC = getLocalCallContext(pragma[only_bind_into](cc), getNodeEnclosingCallable(midnode)) and + localCC = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + getNodeEnclosingCallable(midnode)) and ap0 = mid.getAp() | localFlowBigStep(midnode, node, true, _, conf, localCC) and diff --git a/python/ql/src/semmle/python/dataflow/new/internal/DataFlowImpl3.qll b/python/ql/src/semmle/python/dataflow/new/internal/DataFlowImpl3.qll index 3721374f320..4f54d9671c9 100644 --- a/python/ql/src/semmle/python/dataflow/new/internal/DataFlowImpl3.qll +++ b/python/ql/src/semmle/python/dataflow/new/internal/DataFlowImpl3.qll @@ -2220,7 +2220,9 @@ private module Stage4 { bindingset[node, cc, config] private LocalCc getLocalCc(Node node, Cc cc, Configuration config) { localFlowEntry(node, config) and - result = getLocalCallContext(pragma[only_bind_into](cc), getNodeEnclosingCallable(node)) + result = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + getNodeEnclosingCallable(node)) } private predicate localStep( @@ -3255,7 +3257,9 @@ private predicate pathStep(PathNodeMid mid, Node node, CallContext cc, SummaryCt conf = mid.getConfiguration() and cc = mid.getCallContext() and sc = mid.getSummaryCtx() and - localCC = getLocalCallContext(pragma[only_bind_into](cc), getNodeEnclosingCallable(midnode)) and + localCC = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + getNodeEnclosingCallable(midnode)) and ap0 = mid.getAp() | localFlowBigStep(midnode, node, true, _, conf, localCC) and diff --git a/python/ql/src/semmle/python/dataflow/new/internal/DataFlowImpl4.qll b/python/ql/src/semmle/python/dataflow/new/internal/DataFlowImpl4.qll index 3721374f320..4f54d9671c9 100644 --- a/python/ql/src/semmle/python/dataflow/new/internal/DataFlowImpl4.qll +++ b/python/ql/src/semmle/python/dataflow/new/internal/DataFlowImpl4.qll @@ -2220,7 +2220,9 @@ private module Stage4 { bindingset[node, cc, config] private LocalCc getLocalCc(Node node, Cc cc, Configuration config) { localFlowEntry(node, config) and - result = getLocalCallContext(pragma[only_bind_into](cc), getNodeEnclosingCallable(node)) + result = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + getNodeEnclosingCallable(node)) } private predicate localStep( @@ -3255,7 +3257,9 @@ private predicate pathStep(PathNodeMid mid, Node node, CallContext cc, SummaryCt conf = mid.getConfiguration() and cc = mid.getCallContext() and sc = mid.getSummaryCtx() and - localCC = getLocalCallContext(pragma[only_bind_into](cc), getNodeEnclosingCallable(midnode)) and + localCC = + getLocalCallContext(pragma[only_bind_into](pragma[only_bind_out](cc)), + getNodeEnclosingCallable(midnode)) and ap0 = mid.getAp() | localFlowBigStep(midnode, node, true, _, conf, localCC) and