From 0909c9ff2202b5f316f87fdaf0f8debcb99c36c2 Mon Sep 17 00:00:00 2001 From: Edoardo Pirovano Date: Wed, 23 Jun 2021 17:40:56 +0100 Subject: [PATCH] Performance: Fix bad join order in dataflow library --- .../semmle/code/cpp/dataflow/internal/DataFlowImpl.qll | 9 ++++++--- .../semmle/code/cpp/dataflow/internal/DataFlowImpl2.qll | 9 ++++++--- .../semmle/code/cpp/dataflow/internal/DataFlowImpl3.qll | 9 ++++++--- .../semmle/code/cpp/dataflow/internal/DataFlowImpl4.qll | 9 ++++++--- .../code/cpp/dataflow/internal/DataFlowImplLocal.qll | 9 ++++++--- .../code/cpp/ir/dataflow/internal/DataFlowImpl.qll | 9 ++++++--- .../code/cpp/ir/dataflow/internal/DataFlowImpl2.qll | 9 ++++++--- .../code/cpp/ir/dataflow/internal/DataFlowImpl3.qll | 9 ++++++--- .../code/cpp/ir/dataflow/internal/DataFlowImpl4.qll | 9 ++++++--- .../code/csharp/dataflow/internal/DataFlowImpl.qll | 9 ++++++--- .../code/csharp/dataflow/internal/DataFlowImpl2.qll | 9 ++++++--- .../code/csharp/dataflow/internal/DataFlowImpl3.qll | 9 ++++++--- .../code/csharp/dataflow/internal/DataFlowImpl4.qll | 9 ++++++--- .../code/csharp/dataflow/internal/DataFlowImpl5.qll | 9 ++++++--- .../semmle/code/java/dataflow/internal/DataFlowImpl.qll | 9 ++++++--- .../semmle/code/java/dataflow/internal/DataFlowImpl2.qll | 9 ++++++--- .../semmle/code/java/dataflow/internal/DataFlowImpl3.qll | 9 ++++++--- .../semmle/code/java/dataflow/internal/DataFlowImpl4.qll | 9 ++++++--- .../semmle/code/java/dataflow/internal/DataFlowImpl5.qll | 9 ++++++--- .../semmle/code/java/dataflow/internal/DataFlowImpl6.qll | 9 ++++++--- .../semmle/python/dataflow/new/internal/DataFlowImpl.qll | 9 ++++++--- .../python/dataflow/new/internal/DataFlowImpl2.qll | 9 ++++++--- .../python/dataflow/new/internal/DataFlowImpl3.qll | 9 ++++++--- .../python/dataflow/new/internal/DataFlowImpl4.qll | 9 ++++++--- 24 files changed, 144 insertions(+), 72 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 9b14db7ef88..09619471c35 100644 --- a/cpp/ql/src/semmle/code/cpp/dataflow/internal/DataFlowImpl.qll +++ b/cpp/ql/src/semmle/code/cpp/dataflow/internal/DataFlowImpl.qll @@ -1247,7 +1247,8 @@ private module Stage2 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself @@ -1928,7 +1929,8 @@ private module Stage3 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself @@ -2683,7 +2685,8 @@ private module Stage4 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself 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 9b14db7ef88..09619471c35 100644 --- a/cpp/ql/src/semmle/code/cpp/dataflow/internal/DataFlowImpl2.qll +++ b/cpp/ql/src/semmle/code/cpp/dataflow/internal/DataFlowImpl2.qll @@ -1247,7 +1247,8 @@ private module Stage2 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself @@ -1928,7 +1929,8 @@ private module Stage3 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself @@ -2683,7 +2685,8 @@ private module Stage4 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself 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 9b14db7ef88..09619471c35 100644 --- a/cpp/ql/src/semmle/code/cpp/dataflow/internal/DataFlowImpl3.qll +++ b/cpp/ql/src/semmle/code/cpp/dataflow/internal/DataFlowImpl3.qll @@ -1247,7 +1247,8 @@ private module Stage2 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself @@ -1928,7 +1929,8 @@ private module Stage3 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself @@ -2683,7 +2685,8 @@ private module Stage4 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself 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 9b14db7ef88..09619471c35 100644 --- a/cpp/ql/src/semmle/code/cpp/dataflow/internal/DataFlowImpl4.qll +++ b/cpp/ql/src/semmle/code/cpp/dataflow/internal/DataFlowImpl4.qll @@ -1247,7 +1247,8 @@ private module Stage2 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself @@ -1928,7 +1929,8 @@ private module Stage3 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself @@ -2683,7 +2685,8 @@ private module Stage4 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself 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 9b14db7ef88..09619471c35 100644 --- a/cpp/ql/src/semmle/code/cpp/dataflow/internal/DataFlowImplLocal.qll +++ b/cpp/ql/src/semmle/code/cpp/dataflow/internal/DataFlowImplLocal.qll @@ -1247,7 +1247,8 @@ private module Stage2 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself @@ -1928,7 +1929,8 @@ private module Stage3 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself @@ -2683,7 +2685,8 @@ private module Stage4 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself 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 9b14db7ef88..09619471c35 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 @@ -1247,7 +1247,8 @@ private module Stage2 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself @@ -1928,7 +1929,8 @@ private module Stage3 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself @@ -2683,7 +2685,8 @@ private module Stage4 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself 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 9b14db7ef88..09619471c35 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 @@ -1247,7 +1247,8 @@ private module Stage2 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself @@ -1928,7 +1929,8 @@ private module Stage3 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself @@ -2683,7 +2685,8 @@ private module Stage4 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself 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 9b14db7ef88..09619471c35 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 @@ -1247,7 +1247,8 @@ private module Stage2 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself @@ -1928,7 +1929,8 @@ private module Stage3 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself @@ -2683,7 +2685,8 @@ private module Stage4 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself 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 9b14db7ef88..09619471c35 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 @@ -1247,7 +1247,8 @@ private module Stage2 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself @@ -1928,7 +1929,8 @@ private module Stage3 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself @@ -2683,7 +2685,8 @@ private module Stage4 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself 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 9b14db7ef88..09619471c35 100644 --- a/csharp/ql/src/semmle/code/csharp/dataflow/internal/DataFlowImpl.qll +++ b/csharp/ql/src/semmle/code/csharp/dataflow/internal/DataFlowImpl.qll @@ -1247,7 +1247,8 @@ private module Stage2 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself @@ -1928,7 +1929,8 @@ private module Stage3 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself @@ -2683,7 +2685,8 @@ private module Stage4 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself 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 9b14db7ef88..09619471c35 100644 --- a/csharp/ql/src/semmle/code/csharp/dataflow/internal/DataFlowImpl2.qll +++ b/csharp/ql/src/semmle/code/csharp/dataflow/internal/DataFlowImpl2.qll @@ -1247,7 +1247,8 @@ private module Stage2 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself @@ -1928,7 +1929,8 @@ private module Stage3 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself @@ -2683,7 +2685,8 @@ private module Stage4 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself 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 9b14db7ef88..09619471c35 100644 --- a/csharp/ql/src/semmle/code/csharp/dataflow/internal/DataFlowImpl3.qll +++ b/csharp/ql/src/semmle/code/csharp/dataflow/internal/DataFlowImpl3.qll @@ -1247,7 +1247,8 @@ private module Stage2 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself @@ -1928,7 +1929,8 @@ private module Stage3 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself @@ -2683,7 +2685,8 @@ private module Stage4 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself 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 9b14db7ef88..09619471c35 100644 --- a/csharp/ql/src/semmle/code/csharp/dataflow/internal/DataFlowImpl4.qll +++ b/csharp/ql/src/semmle/code/csharp/dataflow/internal/DataFlowImpl4.qll @@ -1247,7 +1247,8 @@ private module Stage2 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself @@ -1928,7 +1929,8 @@ private module Stage3 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself @@ -2683,7 +2685,8 @@ private module Stage4 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself 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 9b14db7ef88..09619471c35 100644 --- a/csharp/ql/src/semmle/code/csharp/dataflow/internal/DataFlowImpl5.qll +++ b/csharp/ql/src/semmle/code/csharp/dataflow/internal/DataFlowImpl5.qll @@ -1247,7 +1247,8 @@ private module Stage2 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself @@ -1928,7 +1929,8 @@ private module Stage3 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself @@ -2683,7 +2685,8 @@ private module Stage4 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself 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 9b14db7ef88..09619471c35 100644 --- a/java/ql/src/semmle/code/java/dataflow/internal/DataFlowImpl.qll +++ b/java/ql/src/semmle/code/java/dataflow/internal/DataFlowImpl.qll @@ -1247,7 +1247,8 @@ private module Stage2 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself @@ -1928,7 +1929,8 @@ private module Stage3 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself @@ -2683,7 +2685,8 @@ private module Stage4 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself 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 9b14db7ef88..09619471c35 100644 --- a/java/ql/src/semmle/code/java/dataflow/internal/DataFlowImpl2.qll +++ b/java/ql/src/semmle/code/java/dataflow/internal/DataFlowImpl2.qll @@ -1247,7 +1247,8 @@ private module Stage2 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself @@ -1928,7 +1929,8 @@ private module Stage3 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself @@ -2683,7 +2685,8 @@ private module Stage4 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself 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 9b14db7ef88..09619471c35 100644 --- a/java/ql/src/semmle/code/java/dataflow/internal/DataFlowImpl3.qll +++ b/java/ql/src/semmle/code/java/dataflow/internal/DataFlowImpl3.qll @@ -1247,7 +1247,8 @@ private module Stage2 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself @@ -1928,7 +1929,8 @@ private module Stage3 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself @@ -2683,7 +2685,8 @@ private module Stage4 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself 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 9b14db7ef88..09619471c35 100644 --- a/java/ql/src/semmle/code/java/dataflow/internal/DataFlowImpl4.qll +++ b/java/ql/src/semmle/code/java/dataflow/internal/DataFlowImpl4.qll @@ -1247,7 +1247,8 @@ private module Stage2 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself @@ -1928,7 +1929,8 @@ private module Stage3 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself @@ -2683,7 +2685,8 @@ private module Stage4 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself 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 9b14db7ef88..09619471c35 100644 --- a/java/ql/src/semmle/code/java/dataflow/internal/DataFlowImpl5.qll +++ b/java/ql/src/semmle/code/java/dataflow/internal/DataFlowImpl5.qll @@ -1247,7 +1247,8 @@ private module Stage2 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself @@ -1928,7 +1929,8 @@ private module Stage3 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself @@ -2683,7 +2685,8 @@ private module Stage4 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself 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 9b14db7ef88..09619471c35 100644 --- a/java/ql/src/semmle/code/java/dataflow/internal/DataFlowImpl6.qll +++ b/java/ql/src/semmle/code/java/dataflow/internal/DataFlowImpl6.qll @@ -1247,7 +1247,8 @@ private module Stage2 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself @@ -1928,7 +1929,8 @@ private module Stage3 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself @@ -2683,7 +2685,8 @@ private module Stage4 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself 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 9b14db7ef88..09619471c35 100644 --- a/python/ql/src/semmle/python/dataflow/new/internal/DataFlowImpl.qll +++ b/python/ql/src/semmle/python/dataflow/new/internal/DataFlowImpl.qll @@ -1247,7 +1247,8 @@ private module Stage2 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself @@ -1928,7 +1929,8 @@ private module Stage3 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself @@ -2683,7 +2685,8 @@ private module Stage4 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself 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 9b14db7ef88..09619471c35 100644 --- a/python/ql/src/semmle/python/dataflow/new/internal/DataFlowImpl2.qll +++ b/python/ql/src/semmle/python/dataflow/new/internal/DataFlowImpl2.qll @@ -1247,7 +1247,8 @@ private module Stage2 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself @@ -1928,7 +1929,8 @@ private module Stage3 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself @@ -2683,7 +2685,8 @@ private module Stage4 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself 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 9b14db7ef88..09619471c35 100644 --- a/python/ql/src/semmle/python/dataflow/new/internal/DataFlowImpl3.qll +++ b/python/ql/src/semmle/python/dataflow/new/internal/DataFlowImpl3.qll @@ -1247,7 +1247,8 @@ private module Stage2 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself @@ -1928,7 +1929,8 @@ private module Stage3 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself @@ -2683,7 +2685,8 @@ private module Stage4 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself 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 9b14db7ef88..09619471c35 100644 --- a/python/ql/src/semmle/python/dataflow/new/internal/DataFlowImpl4.qll +++ b/python/ql/src/semmle/python/dataflow/new/internal/DataFlowImpl4.qll @@ -1247,7 +1247,8 @@ private module Stage2 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself @@ -1928,7 +1929,8 @@ private module Stage3 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself @@ -2683,7 +2685,8 @@ private module Stage4 { parameterFlow(p, ap, ap0, c, config) and c = getNodeEnclosingCallable(ret) and revFlow(ret, true, apSome(_), ap0, config) and - fwdFlow(ret, any(CcCall ccc), apSome(ap), ap0, config) and + fwdFlow(ret, any(CcCall ccc), apSome(ap), pragma[only_bind_into](ap0), + pragma[only_bind_into](config)) and kind = ret.getKind() and p.isParameterOf(_, pos) and // we don't expect a parameter to return stored in itself