From 1273db5a227f3ab851458eeaee8666da4ddfad9a Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Mon, 26 Sep 2022 20:37:53 +0200 Subject: [PATCH 1/3] Data flow: Fix bad join-order when `getAReadContent` has large fan-in Before (terminated before completion) ``` Evaluated relational algebra for predicate DataFlowImplForHttpClientLibraries#c536b619::store#5#fffff@e5ef07bh with tuple counts: 151500 ~0% {4} r1 = SCAN DataFlowImplCommon#4f8df883::Cached::store#4#ffff OUTPUT In.1, In.0, In.2, In.3 150500 ~0% {5} r2 = JOIN r1 WITH DataFlowImplCommon#4f8df883::Cached::MkTypedContent#fff_20#join_rhs ON FIRST 1 OUTPUT Lhs.1, Lhs.0, Lhs.2, Lhs.3, Rhs.1 149500 ~0% {5} r3 = JOIN r2 WITH num#DataFlowImplForHttpClientLibraries#c536b619::TNodeNormal#ff ON FIRST 1 OUTPUT Lhs.2, Lhs.1, Lhs.3, Lhs.4, Rhs.1 148500 ~0% {5} r4 = JOIN r3 WITH num#DataFlowImplForHttpClientLibraries#c536b619::TNodeNormal#ff ON FIRST 1 OUTPUT Lhs.3, Lhs.1, Lhs.2, Lhs.4, Rhs.1 2003849000 ~0% {5} r5 = JOIN r4 WITH DataFlowPublic#e1781e31::ContentSet::getAReadContent#0#dispred#ff_10#join_rhs ON FIRST 1 OUTPUT Rhs.1, Lhs.1, Lhs.2, Lhs.3, Lhs.4 105066500 ~9036% {5} r6 = JOIN r5 WITH project#DataFlowImplForHttpClientLibraries#c536b619::readSet#4#ffff ON FIRST 1 OUTPUT Lhs.3, Lhs.1, Lhs.4, Lhs.2, Rhs.1 return r6 ``` After ``` Evaluated relational algebra for predicate DataFlowImplForHttpClientLibraries#c536b619::readProj#2#ff@302620cn with tuple counts: 1461867 ~0% {2} r1 = SCAN DataFlowPrivate#462ff392::Cached::TContent#f OUTPUT In.0, In.0 3549054 ~1% {2} r2 = JOIN r1 WITH DataFlowPublic#e1781e31::ContentSet::getAReadContent#0#dispred#ff_10#join_rhs ON FIRST 1 OUTPUT Rhs.1, Lhs.1 5772824 ~5% {2} r3 = JOIN r2 WITH project#DataFlowImplForHttpClientLibraries#c536b619::readSet#4#ffff ON FIRST 1 OUTPUT Lhs.1, Rhs.1 return r3 Evaluated relational algebra for predicate DataFlowImplForHttpClientLibraries#c536b619::store#5#fffff@016cd9o1 with tuple counts: 267905 ~0% {4} r1 = SCAN DataFlowImplCommon#4f8df883::Cached::store#4#ffff OUTPUT In.1, In.0, In.2, In.3 267905 ~0% {5} r2 = JOIN r1 WITH DataFlowImplCommon#4f8df883::Cached::MkTypedContent#fff_20#join_rhs ON FIRST 1 OUTPUT Lhs.1, Lhs.0, Lhs.2, Lhs.3, Rhs.1 267905 ~0% {5} r3 = JOIN r2 WITH num#DataFlowImplForHttpClientLibraries#c536b619::TNodeNormal#ff ON FIRST 1 OUTPUT Lhs.2, Lhs.1, Lhs.3, Lhs.4, Rhs.1 267905 ~0% {5} r4 = JOIN r3 WITH num#DataFlowImplForHttpClientLibraries#c536b619::TNodeNormal#ff ON FIRST 1 OUTPUT Lhs.3, Lhs.1, Lhs.2, Lhs.4, Rhs.1 2109240 ~0% {5} r5 = JOIN r4 WITH DataFlowImplForHttpClientLibraries#c536b619::readProj#2#ff ON FIRST 1 OUTPUT Lhs.3, Lhs.1, Lhs.4, Lhs.2, Rhs.1 return r5 ``` --- .../semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/cpp/ql/lib/experimental/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll b/cpp/ql/lib/experimental/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll index 468f8640a78..aa0b6aba5b0 100644 --- a/cpp/ql/lib/experimental/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll +++ b/cpp/ql/lib/experimental/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll @@ -558,13 +558,16 @@ private predicate expectsContentEx(NodeEx n, Content c) { pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } +pragma[nomagic] +private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } + pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - read(_, tc.getContent(), _, config) and + readProj(tc.getContent(), config) and stepFilter(node1, node2, config) } From 45fc62f16be0b5ca3dd4336ecce2d9f39bd659f9 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Mon, 26 Sep 2022 20:39:48 +0200 Subject: [PATCH 2/3] Data flow: Sync files --- .../semmle/code/cpp/ir/dataflow/internal/DataFlowImpl2.qll | 5 ++++- .../semmle/code/cpp/ir/dataflow/internal/DataFlowImpl3.qll | 5 ++++- .../semmle/code/cpp/ir/dataflow/internal/DataFlowImpl4.qll | 5 ++++- .../lib/semmle/code/cpp/dataflow/internal/DataFlowImpl.qll | 5 ++++- .../lib/semmle/code/cpp/dataflow/internal/DataFlowImpl2.qll | 5 ++++- .../lib/semmle/code/cpp/dataflow/internal/DataFlowImpl3.qll | 5 ++++- .../lib/semmle/code/cpp/dataflow/internal/DataFlowImpl4.qll | 5 ++++- .../semmle/code/cpp/dataflow/internal/DataFlowImplLocal.qll | 5 ++++- .../semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll | 5 ++++- .../semmle/code/cpp/ir/dataflow/internal/DataFlowImpl2.qll | 5 ++++- .../semmle/code/cpp/ir/dataflow/internal/DataFlowImpl3.qll | 5 ++++- .../semmle/code/cpp/ir/dataflow/internal/DataFlowImpl4.qll | 5 ++++- .../semmle/code/csharp/dataflow/internal/DataFlowImpl.qll | 5 ++++- .../semmle/code/csharp/dataflow/internal/DataFlowImpl2.qll | 5 ++++- .../semmle/code/csharp/dataflow/internal/DataFlowImpl3.qll | 5 ++++- .../semmle/code/csharp/dataflow/internal/DataFlowImpl4.qll | 5 ++++- .../semmle/code/csharp/dataflow/internal/DataFlowImpl5.qll | 5 ++++- .../dataflow/internal/DataFlowImplForContentDataFlow.qll | 5 ++++- .../lib/semmle/code/java/dataflow/internal/DataFlowImpl.qll | 5 ++++- .../lib/semmle/code/java/dataflow/internal/DataFlowImpl2.qll | 5 ++++- .../lib/semmle/code/java/dataflow/internal/DataFlowImpl3.qll | 5 ++++- .../lib/semmle/code/java/dataflow/internal/DataFlowImpl4.qll | 5 ++++- .../lib/semmle/code/java/dataflow/internal/DataFlowImpl5.qll | 5 ++++- .../lib/semmle/code/java/dataflow/internal/DataFlowImpl6.qll | 5 ++++- .../dataflow/internal/DataFlowImplForOnActivityResult.qll | 5 ++++- .../dataflow/internal/DataFlowImplForSerializability.qll | 5 ++++- .../lib/semmle/python/dataflow/new/internal/DataFlowImpl.qll | 5 ++++- .../semmle/python/dataflow/new/internal/DataFlowImpl2.qll | 5 ++++- .../semmle/python/dataflow/new/internal/DataFlowImpl3.qll | 5 ++++- .../semmle/python/dataflow/new/internal/DataFlowImpl4.qll | 5 ++++- ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl.qll | 5 ++++- ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl2.qll | 5 ++++- .../dataflow/internal/DataFlowImplForHttpClientLibraries.qll | 5 ++++- .../ruby/dataflow/internal/DataFlowImplForLibraries.qll | 5 ++++- swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImpl.qll | 5 ++++- 35 files changed, 140 insertions(+), 35 deletions(-) diff --git a/cpp/ql/lib/experimental/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl2.qll b/cpp/ql/lib/experimental/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl2.qll index 468f8640a78..aa0b6aba5b0 100644 --- a/cpp/ql/lib/experimental/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl2.qll +++ b/cpp/ql/lib/experimental/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl2.qll @@ -558,13 +558,16 @@ private predicate expectsContentEx(NodeEx n, Content c) { pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } +pragma[nomagic] +private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } + pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - read(_, tc.getContent(), _, config) and + readProj(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/cpp/ql/lib/experimental/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl3.qll b/cpp/ql/lib/experimental/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl3.qll index 468f8640a78..aa0b6aba5b0 100644 --- a/cpp/ql/lib/experimental/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl3.qll +++ b/cpp/ql/lib/experimental/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl3.qll @@ -558,13 +558,16 @@ private predicate expectsContentEx(NodeEx n, Content c) { pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } +pragma[nomagic] +private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } + pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - read(_, tc.getContent(), _, config) and + readProj(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/cpp/ql/lib/experimental/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl4.qll b/cpp/ql/lib/experimental/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl4.qll index 468f8640a78..aa0b6aba5b0 100644 --- a/cpp/ql/lib/experimental/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl4.qll +++ b/cpp/ql/lib/experimental/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl4.qll @@ -558,13 +558,16 @@ private predicate expectsContentEx(NodeEx n, Content c) { pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } +pragma[nomagic] +private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } + pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - read(_, tc.getContent(), _, config) and + readProj(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl.qll index 468f8640a78..aa0b6aba5b0 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl.qll @@ -558,13 +558,16 @@ private predicate expectsContentEx(NodeEx n, Content c) { pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } +pragma[nomagic] +private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } + pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - read(_, tc.getContent(), _, config) and + readProj(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl2.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl2.qll index 468f8640a78..aa0b6aba5b0 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl2.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl2.qll @@ -558,13 +558,16 @@ private predicate expectsContentEx(NodeEx n, Content c) { pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } +pragma[nomagic] +private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } + pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - read(_, tc.getContent(), _, config) and + readProj(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl3.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl3.qll index 468f8640a78..aa0b6aba5b0 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl3.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl3.qll @@ -558,13 +558,16 @@ private predicate expectsContentEx(NodeEx n, Content c) { pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } +pragma[nomagic] +private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } + pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - read(_, tc.getContent(), _, config) and + readProj(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl4.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl4.qll index 468f8640a78..aa0b6aba5b0 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl4.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl4.qll @@ -558,13 +558,16 @@ private predicate expectsContentEx(NodeEx n, Content c) { pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } +pragma[nomagic] +private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } + pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - read(_, tc.getContent(), _, config) and + readProj(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImplLocal.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImplLocal.qll index 468f8640a78..aa0b6aba5b0 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImplLocal.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImplLocal.qll @@ -558,13 +558,16 @@ private predicate expectsContentEx(NodeEx n, Content c) { pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } +pragma[nomagic] +private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } + pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - read(_, tc.getContent(), _, config) and + readProj(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll index 468f8640a78..aa0b6aba5b0 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll @@ -558,13 +558,16 @@ private predicate expectsContentEx(NodeEx n, Content c) { pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } +pragma[nomagic] +private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } + pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - read(_, tc.getContent(), _, config) and + readProj(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl2.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl2.qll index 468f8640a78..aa0b6aba5b0 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl2.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl2.qll @@ -558,13 +558,16 @@ private predicate expectsContentEx(NodeEx n, Content c) { pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } +pragma[nomagic] +private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } + pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - read(_, tc.getContent(), _, config) and + readProj(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl3.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl3.qll index 468f8640a78..aa0b6aba5b0 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl3.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl3.qll @@ -558,13 +558,16 @@ private predicate expectsContentEx(NodeEx n, Content c) { pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } +pragma[nomagic] +private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } + pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - read(_, tc.getContent(), _, config) and + readProj(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl4.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl4.qll index 468f8640a78..aa0b6aba5b0 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl4.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl4.qll @@ -558,13 +558,16 @@ private predicate expectsContentEx(NodeEx n, Content c) { pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } +pragma[nomagic] +private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } + pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - read(_, tc.getContent(), _, config) and + readProj(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl.qll index 468f8640a78..aa0b6aba5b0 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl.qll @@ -558,13 +558,16 @@ private predicate expectsContentEx(NodeEx n, Content c) { pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } +pragma[nomagic] +private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } + pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - read(_, tc.getContent(), _, config) and + readProj(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl2.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl2.qll index 468f8640a78..aa0b6aba5b0 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl2.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl2.qll @@ -558,13 +558,16 @@ private predicate expectsContentEx(NodeEx n, Content c) { pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } +pragma[nomagic] +private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } + pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - read(_, tc.getContent(), _, config) and + readProj(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl3.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl3.qll index 468f8640a78..aa0b6aba5b0 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl3.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl3.qll @@ -558,13 +558,16 @@ private predicate expectsContentEx(NodeEx n, Content c) { pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } +pragma[nomagic] +private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } + pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - read(_, tc.getContent(), _, config) and + readProj(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl4.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl4.qll index 468f8640a78..aa0b6aba5b0 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl4.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl4.qll @@ -558,13 +558,16 @@ private predicate expectsContentEx(NodeEx n, Content c) { pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } +pragma[nomagic] +private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } + pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - read(_, tc.getContent(), _, config) and + readProj(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl5.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl5.qll index 468f8640a78..aa0b6aba5b0 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl5.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl5.qll @@ -558,13 +558,16 @@ private predicate expectsContentEx(NodeEx n, Content c) { pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } +pragma[nomagic] +private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } + pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - read(_, tc.getContent(), _, config) and + readProj(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImplForContentDataFlow.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImplForContentDataFlow.qll index 468f8640a78..aa0b6aba5b0 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImplForContentDataFlow.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImplForContentDataFlow.qll @@ -558,13 +558,16 @@ private predicate expectsContentEx(NodeEx n, Content c) { pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } +pragma[nomagic] +private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } + pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - read(_, tc.getContent(), _, config) and + readProj(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl.qll index 468f8640a78..aa0b6aba5b0 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl.qll @@ -558,13 +558,16 @@ private predicate expectsContentEx(NodeEx n, Content c) { pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } +pragma[nomagic] +private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } + pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - read(_, tc.getContent(), _, config) and + readProj(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl2.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl2.qll index 468f8640a78..aa0b6aba5b0 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl2.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl2.qll @@ -558,13 +558,16 @@ private predicate expectsContentEx(NodeEx n, Content c) { pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } +pragma[nomagic] +private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } + pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - read(_, tc.getContent(), _, config) and + readProj(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl3.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl3.qll index 468f8640a78..aa0b6aba5b0 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl3.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl3.qll @@ -558,13 +558,16 @@ private predicate expectsContentEx(NodeEx n, Content c) { pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } +pragma[nomagic] +private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } + pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - read(_, tc.getContent(), _, config) and + readProj(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl4.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl4.qll index 468f8640a78..aa0b6aba5b0 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl4.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl4.qll @@ -558,13 +558,16 @@ private predicate expectsContentEx(NodeEx n, Content c) { pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } +pragma[nomagic] +private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } + pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - read(_, tc.getContent(), _, config) and + readProj(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl5.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl5.qll index 468f8640a78..aa0b6aba5b0 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl5.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl5.qll @@ -558,13 +558,16 @@ private predicate expectsContentEx(NodeEx n, Content c) { pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } +pragma[nomagic] +private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } + pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - read(_, tc.getContent(), _, config) and + readProj(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl6.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl6.qll index 468f8640a78..aa0b6aba5b0 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl6.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl6.qll @@ -558,13 +558,16 @@ private predicate expectsContentEx(NodeEx n, Content c) { pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } +pragma[nomagic] +private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } + pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - read(_, tc.getContent(), _, config) and + readProj(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplForOnActivityResult.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplForOnActivityResult.qll index 468f8640a78..aa0b6aba5b0 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplForOnActivityResult.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplForOnActivityResult.qll @@ -558,13 +558,16 @@ private predicate expectsContentEx(NodeEx n, Content c) { pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } +pragma[nomagic] +private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } + pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - read(_, tc.getContent(), _, config) and + readProj(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplForSerializability.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplForSerializability.qll index 468f8640a78..aa0b6aba5b0 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplForSerializability.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplForSerializability.qll @@ -558,13 +558,16 @@ private predicate expectsContentEx(NodeEx n, Content c) { pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } +pragma[nomagic] +private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } + pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - read(_, tc.getContent(), _, config) and + readProj(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl.qll b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl.qll index 468f8640a78..aa0b6aba5b0 100644 --- a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl.qll +++ b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl.qll @@ -558,13 +558,16 @@ private predicate expectsContentEx(NodeEx n, Content c) { pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } +pragma[nomagic] +private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } + pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - read(_, tc.getContent(), _, config) and + readProj(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl2.qll b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl2.qll index 468f8640a78..aa0b6aba5b0 100644 --- a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl2.qll +++ b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl2.qll @@ -558,13 +558,16 @@ private predicate expectsContentEx(NodeEx n, Content c) { pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } +pragma[nomagic] +private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } + pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - read(_, tc.getContent(), _, config) and + readProj(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl3.qll b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl3.qll index 468f8640a78..aa0b6aba5b0 100644 --- a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl3.qll +++ b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl3.qll @@ -558,13 +558,16 @@ private predicate expectsContentEx(NodeEx n, Content c) { pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } +pragma[nomagic] +private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } + pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - read(_, tc.getContent(), _, config) and + readProj(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl4.qll b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl4.qll index 468f8640a78..aa0b6aba5b0 100644 --- a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl4.qll +++ b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl4.qll @@ -558,13 +558,16 @@ private predicate expectsContentEx(NodeEx n, Content c) { pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } +pragma[nomagic] +private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } + pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - read(_, tc.getContent(), _, config) and + readProj(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl.qll index 468f8640a78..aa0b6aba5b0 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl.qll @@ -558,13 +558,16 @@ private predicate expectsContentEx(NodeEx n, Content c) { pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } +pragma[nomagic] +private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } + pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - read(_, tc.getContent(), _, config) and + readProj(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl2.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl2.qll index 468f8640a78..aa0b6aba5b0 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl2.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl2.qll @@ -558,13 +558,16 @@ private predicate expectsContentEx(NodeEx n, Content c) { pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } +pragma[nomagic] +private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } + pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - read(_, tc.getContent(), _, config) and + readProj(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImplForHttpClientLibraries.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImplForHttpClientLibraries.qll index 468f8640a78..aa0b6aba5b0 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImplForHttpClientLibraries.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImplForHttpClientLibraries.qll @@ -558,13 +558,16 @@ private predicate expectsContentEx(NodeEx n, Content c) { pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } +pragma[nomagic] +private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } + pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - read(_, tc.getContent(), _, config) and + readProj(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImplForLibraries.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImplForLibraries.qll index 468f8640a78..aa0b6aba5b0 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImplForLibraries.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImplForLibraries.qll @@ -558,13 +558,16 @@ private predicate expectsContentEx(NodeEx n, Content c) { pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } +pragma[nomagic] +private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } + pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - read(_, tc.getContent(), _, config) and + readProj(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImpl.qll b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImpl.qll index 468f8640a78..aa0b6aba5b0 100644 --- a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImpl.qll +++ b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImpl.qll @@ -558,13 +558,16 @@ private predicate expectsContentEx(NodeEx n, Content c) { pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } +pragma[nomagic] +private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } + pragma[nomagic] private predicate store( NodeEx node1, TypedContent tc, NodeEx node2, DataFlowType contentType, Configuration config ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - read(_, tc.getContent(), _, config) and + readProj(tc.getContent(), config) and stepFilter(node1, node2, config) } From 335e1a823340fc87c50b36e8bf3682433e6022c8 Mon Sep 17 00:00:00 2001 From: Tom Hvitved Date: Tue, 27 Sep 2022 13:36:52 +0200 Subject: [PATCH 3/3] Address review comments --- .../semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll | 4 ++-- .../semmle/code/cpp/ir/dataflow/internal/DataFlowImpl2.qll | 4 ++-- .../semmle/code/cpp/ir/dataflow/internal/DataFlowImpl3.qll | 4 ++-- .../semmle/code/cpp/ir/dataflow/internal/DataFlowImpl4.qll | 4 ++-- cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl.qll | 4 ++-- .../lib/semmle/code/cpp/dataflow/internal/DataFlowImpl2.qll | 4 ++-- .../lib/semmle/code/cpp/dataflow/internal/DataFlowImpl3.qll | 4 ++-- .../lib/semmle/code/cpp/dataflow/internal/DataFlowImpl4.qll | 4 ++-- .../semmle/code/cpp/dataflow/internal/DataFlowImplLocal.qll | 4 ++-- .../lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll | 4 ++-- .../semmle/code/cpp/ir/dataflow/internal/DataFlowImpl2.qll | 4 ++-- .../semmle/code/cpp/ir/dataflow/internal/DataFlowImpl3.qll | 4 ++-- .../semmle/code/cpp/ir/dataflow/internal/DataFlowImpl4.qll | 4 ++-- .../lib/semmle/code/csharp/dataflow/internal/DataFlowImpl.qll | 4 ++-- .../semmle/code/csharp/dataflow/internal/DataFlowImpl2.qll | 4 ++-- .../semmle/code/csharp/dataflow/internal/DataFlowImpl3.qll | 4 ++-- .../semmle/code/csharp/dataflow/internal/DataFlowImpl4.qll | 4 ++-- .../semmle/code/csharp/dataflow/internal/DataFlowImpl5.qll | 4 ++-- .../dataflow/internal/DataFlowImplForContentDataFlow.qll | 4 ++-- .../lib/semmle/code/java/dataflow/internal/DataFlowImpl.qll | 4 ++-- .../lib/semmle/code/java/dataflow/internal/DataFlowImpl2.qll | 4 ++-- .../lib/semmle/code/java/dataflow/internal/DataFlowImpl3.qll | 4 ++-- .../lib/semmle/code/java/dataflow/internal/DataFlowImpl4.qll | 4 ++-- .../lib/semmle/code/java/dataflow/internal/DataFlowImpl5.qll | 4 ++-- .../lib/semmle/code/java/dataflow/internal/DataFlowImpl6.qll | 4 ++-- .../dataflow/internal/DataFlowImplForOnActivityResult.qll | 4 ++-- .../java/dataflow/internal/DataFlowImplForSerializability.qll | 4 ++-- .../lib/semmle/python/dataflow/new/internal/DataFlowImpl.qll | 4 ++-- .../lib/semmle/python/dataflow/new/internal/DataFlowImpl2.qll | 4 ++-- .../lib/semmle/python/dataflow/new/internal/DataFlowImpl3.qll | 4 ++-- .../lib/semmle/python/dataflow/new/internal/DataFlowImpl4.qll | 4 ++-- ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl.qll | 4 ++-- ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl2.qll | 4 ++-- .../dataflow/internal/DataFlowImplForHttpClientLibraries.qll | 4 ++-- .../ruby/dataflow/internal/DataFlowImplForLibraries.qll | 4 ++-- swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImpl.qll | 4 ++-- 36 files changed, 72 insertions(+), 72 deletions(-) diff --git a/cpp/ql/lib/experimental/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll b/cpp/ql/lib/experimental/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll index aa0b6aba5b0..a034d7fc0f6 100644 --- a/cpp/ql/lib/experimental/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll +++ b/cpp/ql/lib/experimental/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll @@ -559,7 +559,7 @@ pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } pragma[nomagic] -private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } +private predicate hasReadStep(Content c, Configuration config) { read(_, c, _, config) } pragma[nomagic] private predicate store( @@ -567,7 +567,7 @@ private predicate store( ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - readProj(tc.getContent(), config) and + hasReadStep(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/cpp/ql/lib/experimental/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl2.qll b/cpp/ql/lib/experimental/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl2.qll index aa0b6aba5b0..a034d7fc0f6 100644 --- a/cpp/ql/lib/experimental/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl2.qll +++ b/cpp/ql/lib/experimental/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl2.qll @@ -559,7 +559,7 @@ pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } pragma[nomagic] -private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } +private predicate hasReadStep(Content c, Configuration config) { read(_, c, _, config) } pragma[nomagic] private predicate store( @@ -567,7 +567,7 @@ private predicate store( ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - readProj(tc.getContent(), config) and + hasReadStep(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/cpp/ql/lib/experimental/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl3.qll b/cpp/ql/lib/experimental/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl3.qll index aa0b6aba5b0..a034d7fc0f6 100644 --- a/cpp/ql/lib/experimental/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl3.qll +++ b/cpp/ql/lib/experimental/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl3.qll @@ -559,7 +559,7 @@ pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } pragma[nomagic] -private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } +private predicate hasReadStep(Content c, Configuration config) { read(_, c, _, config) } pragma[nomagic] private predicate store( @@ -567,7 +567,7 @@ private predicate store( ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - readProj(tc.getContent(), config) and + hasReadStep(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/cpp/ql/lib/experimental/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl4.qll b/cpp/ql/lib/experimental/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl4.qll index aa0b6aba5b0..a034d7fc0f6 100644 --- a/cpp/ql/lib/experimental/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl4.qll +++ b/cpp/ql/lib/experimental/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl4.qll @@ -559,7 +559,7 @@ pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } pragma[nomagic] -private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } +private predicate hasReadStep(Content c, Configuration config) { read(_, c, _, config) } pragma[nomagic] private predicate store( @@ -567,7 +567,7 @@ private predicate store( ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - readProj(tc.getContent(), config) and + hasReadStep(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl.qll index aa0b6aba5b0..a034d7fc0f6 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl.qll @@ -559,7 +559,7 @@ pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } pragma[nomagic] -private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } +private predicate hasReadStep(Content c, Configuration config) { read(_, c, _, config) } pragma[nomagic] private predicate store( @@ -567,7 +567,7 @@ private predicate store( ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - readProj(tc.getContent(), config) and + hasReadStep(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl2.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl2.qll index aa0b6aba5b0..a034d7fc0f6 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl2.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl2.qll @@ -559,7 +559,7 @@ pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } pragma[nomagic] -private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } +private predicate hasReadStep(Content c, Configuration config) { read(_, c, _, config) } pragma[nomagic] private predicate store( @@ -567,7 +567,7 @@ private predicate store( ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - readProj(tc.getContent(), config) and + hasReadStep(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl3.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl3.qll index aa0b6aba5b0..a034d7fc0f6 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl3.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl3.qll @@ -559,7 +559,7 @@ pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } pragma[nomagic] -private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } +private predicate hasReadStep(Content c, Configuration config) { read(_, c, _, config) } pragma[nomagic] private predicate store( @@ -567,7 +567,7 @@ private predicate store( ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - readProj(tc.getContent(), config) and + hasReadStep(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl4.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl4.qll index aa0b6aba5b0..a034d7fc0f6 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl4.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl4.qll @@ -559,7 +559,7 @@ pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } pragma[nomagic] -private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } +private predicate hasReadStep(Content c, Configuration config) { read(_, c, _, config) } pragma[nomagic] private predicate store( @@ -567,7 +567,7 @@ private predicate store( ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - readProj(tc.getContent(), config) and + hasReadStep(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImplLocal.qll b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImplLocal.qll index aa0b6aba5b0..a034d7fc0f6 100644 --- a/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImplLocal.qll +++ b/cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImplLocal.qll @@ -559,7 +559,7 @@ pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } pragma[nomagic] -private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } +private predicate hasReadStep(Content c, Configuration config) { read(_, c, _, config) } pragma[nomagic] private predicate store( @@ -567,7 +567,7 @@ private predicate store( ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - readProj(tc.getContent(), config) and + hasReadStep(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll index aa0b6aba5b0..a034d7fc0f6 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll @@ -559,7 +559,7 @@ pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } pragma[nomagic] -private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } +private predicate hasReadStep(Content c, Configuration config) { read(_, c, _, config) } pragma[nomagic] private predicate store( @@ -567,7 +567,7 @@ private predicate store( ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - readProj(tc.getContent(), config) and + hasReadStep(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl2.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl2.qll index aa0b6aba5b0..a034d7fc0f6 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl2.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl2.qll @@ -559,7 +559,7 @@ pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } pragma[nomagic] -private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } +private predicate hasReadStep(Content c, Configuration config) { read(_, c, _, config) } pragma[nomagic] private predicate store( @@ -567,7 +567,7 @@ private predicate store( ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - readProj(tc.getContent(), config) and + hasReadStep(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl3.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl3.qll index aa0b6aba5b0..a034d7fc0f6 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl3.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl3.qll @@ -559,7 +559,7 @@ pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } pragma[nomagic] -private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } +private predicate hasReadStep(Content c, Configuration config) { read(_, c, _, config) } pragma[nomagic] private predicate store( @@ -567,7 +567,7 @@ private predicate store( ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - readProj(tc.getContent(), config) and + hasReadStep(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl4.qll b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl4.qll index aa0b6aba5b0..a034d7fc0f6 100644 --- a/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl4.qll +++ b/cpp/ql/lib/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl4.qll @@ -559,7 +559,7 @@ pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } pragma[nomagic] -private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } +private predicate hasReadStep(Content c, Configuration config) { read(_, c, _, config) } pragma[nomagic] private predicate store( @@ -567,7 +567,7 @@ private predicate store( ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - readProj(tc.getContent(), config) and + hasReadStep(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl.qll index aa0b6aba5b0..a034d7fc0f6 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl.qll @@ -559,7 +559,7 @@ pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } pragma[nomagic] -private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } +private predicate hasReadStep(Content c, Configuration config) { read(_, c, _, config) } pragma[nomagic] private predicate store( @@ -567,7 +567,7 @@ private predicate store( ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - readProj(tc.getContent(), config) and + hasReadStep(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl2.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl2.qll index aa0b6aba5b0..a034d7fc0f6 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl2.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl2.qll @@ -559,7 +559,7 @@ pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } pragma[nomagic] -private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } +private predicate hasReadStep(Content c, Configuration config) { read(_, c, _, config) } pragma[nomagic] private predicate store( @@ -567,7 +567,7 @@ private predicate store( ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - readProj(tc.getContent(), config) and + hasReadStep(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl3.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl3.qll index aa0b6aba5b0..a034d7fc0f6 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl3.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl3.qll @@ -559,7 +559,7 @@ pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } pragma[nomagic] -private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } +private predicate hasReadStep(Content c, Configuration config) { read(_, c, _, config) } pragma[nomagic] private predicate store( @@ -567,7 +567,7 @@ private predicate store( ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - readProj(tc.getContent(), config) and + hasReadStep(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl4.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl4.qll index aa0b6aba5b0..a034d7fc0f6 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl4.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl4.qll @@ -559,7 +559,7 @@ pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } pragma[nomagic] -private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } +private predicate hasReadStep(Content c, Configuration config) { read(_, c, _, config) } pragma[nomagic] private predicate store( @@ -567,7 +567,7 @@ private predicate store( ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - readProj(tc.getContent(), config) and + hasReadStep(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl5.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl5.qll index aa0b6aba5b0..a034d7fc0f6 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl5.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImpl5.qll @@ -559,7 +559,7 @@ pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } pragma[nomagic] -private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } +private predicate hasReadStep(Content c, Configuration config) { read(_, c, _, config) } pragma[nomagic] private predicate store( @@ -567,7 +567,7 @@ private predicate store( ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - readProj(tc.getContent(), config) and + hasReadStep(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImplForContentDataFlow.qll b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImplForContentDataFlow.qll index aa0b6aba5b0..a034d7fc0f6 100644 --- a/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImplForContentDataFlow.qll +++ b/csharp/ql/lib/semmle/code/csharp/dataflow/internal/DataFlowImplForContentDataFlow.qll @@ -559,7 +559,7 @@ pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } pragma[nomagic] -private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } +private predicate hasReadStep(Content c, Configuration config) { read(_, c, _, config) } pragma[nomagic] private predicate store( @@ -567,7 +567,7 @@ private predicate store( ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - readProj(tc.getContent(), config) and + hasReadStep(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl.qll index aa0b6aba5b0..a034d7fc0f6 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl.qll @@ -559,7 +559,7 @@ pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } pragma[nomagic] -private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } +private predicate hasReadStep(Content c, Configuration config) { read(_, c, _, config) } pragma[nomagic] private predicate store( @@ -567,7 +567,7 @@ private predicate store( ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - readProj(tc.getContent(), config) and + hasReadStep(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl2.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl2.qll index aa0b6aba5b0..a034d7fc0f6 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl2.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl2.qll @@ -559,7 +559,7 @@ pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } pragma[nomagic] -private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } +private predicate hasReadStep(Content c, Configuration config) { read(_, c, _, config) } pragma[nomagic] private predicate store( @@ -567,7 +567,7 @@ private predicate store( ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - readProj(tc.getContent(), config) and + hasReadStep(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl3.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl3.qll index aa0b6aba5b0..a034d7fc0f6 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl3.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl3.qll @@ -559,7 +559,7 @@ pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } pragma[nomagic] -private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } +private predicate hasReadStep(Content c, Configuration config) { read(_, c, _, config) } pragma[nomagic] private predicate store( @@ -567,7 +567,7 @@ private predicate store( ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - readProj(tc.getContent(), config) and + hasReadStep(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl4.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl4.qll index aa0b6aba5b0..a034d7fc0f6 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl4.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl4.qll @@ -559,7 +559,7 @@ pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } pragma[nomagic] -private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } +private predicate hasReadStep(Content c, Configuration config) { read(_, c, _, config) } pragma[nomagic] private predicate store( @@ -567,7 +567,7 @@ private predicate store( ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - readProj(tc.getContent(), config) and + hasReadStep(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl5.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl5.qll index aa0b6aba5b0..a034d7fc0f6 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl5.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl5.qll @@ -559,7 +559,7 @@ pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } pragma[nomagic] -private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } +private predicate hasReadStep(Content c, Configuration config) { read(_, c, _, config) } pragma[nomagic] private predicate store( @@ -567,7 +567,7 @@ private predicate store( ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - readProj(tc.getContent(), config) and + hasReadStep(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl6.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl6.qll index aa0b6aba5b0..a034d7fc0f6 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl6.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImpl6.qll @@ -559,7 +559,7 @@ pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } pragma[nomagic] -private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } +private predicate hasReadStep(Content c, Configuration config) { read(_, c, _, config) } pragma[nomagic] private predicate store( @@ -567,7 +567,7 @@ private predicate store( ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - readProj(tc.getContent(), config) and + hasReadStep(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplForOnActivityResult.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplForOnActivityResult.qll index aa0b6aba5b0..a034d7fc0f6 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplForOnActivityResult.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplForOnActivityResult.qll @@ -559,7 +559,7 @@ pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } pragma[nomagic] -private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } +private predicate hasReadStep(Content c, Configuration config) { read(_, c, _, config) } pragma[nomagic] private predicate store( @@ -567,7 +567,7 @@ private predicate store( ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - readProj(tc.getContent(), config) and + hasReadStep(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplForSerializability.qll b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplForSerializability.qll index aa0b6aba5b0..a034d7fc0f6 100644 --- a/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplForSerializability.qll +++ b/java/ql/lib/semmle/code/java/dataflow/internal/DataFlowImplForSerializability.qll @@ -559,7 +559,7 @@ pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } pragma[nomagic] -private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } +private predicate hasReadStep(Content c, Configuration config) { read(_, c, _, config) } pragma[nomagic] private predicate store( @@ -567,7 +567,7 @@ private predicate store( ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - readProj(tc.getContent(), config) and + hasReadStep(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl.qll b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl.qll index aa0b6aba5b0..a034d7fc0f6 100644 --- a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl.qll +++ b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl.qll @@ -559,7 +559,7 @@ pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } pragma[nomagic] -private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } +private predicate hasReadStep(Content c, Configuration config) { read(_, c, _, config) } pragma[nomagic] private predicate store( @@ -567,7 +567,7 @@ private predicate store( ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - readProj(tc.getContent(), config) and + hasReadStep(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl2.qll b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl2.qll index aa0b6aba5b0..a034d7fc0f6 100644 --- a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl2.qll +++ b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl2.qll @@ -559,7 +559,7 @@ pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } pragma[nomagic] -private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } +private predicate hasReadStep(Content c, Configuration config) { read(_, c, _, config) } pragma[nomagic] private predicate store( @@ -567,7 +567,7 @@ private predicate store( ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - readProj(tc.getContent(), config) and + hasReadStep(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl3.qll b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl3.qll index aa0b6aba5b0..a034d7fc0f6 100644 --- a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl3.qll +++ b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl3.qll @@ -559,7 +559,7 @@ pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } pragma[nomagic] -private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } +private predicate hasReadStep(Content c, Configuration config) { read(_, c, _, config) } pragma[nomagic] private predicate store( @@ -567,7 +567,7 @@ private predicate store( ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - readProj(tc.getContent(), config) and + hasReadStep(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl4.qll b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl4.qll index aa0b6aba5b0..a034d7fc0f6 100644 --- a/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl4.qll +++ b/python/ql/lib/semmle/python/dataflow/new/internal/DataFlowImpl4.qll @@ -559,7 +559,7 @@ pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } pragma[nomagic] -private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } +private predicate hasReadStep(Content c, Configuration config) { read(_, c, _, config) } pragma[nomagic] private predicate store( @@ -567,7 +567,7 @@ private predicate store( ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - readProj(tc.getContent(), config) and + hasReadStep(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl.qll index aa0b6aba5b0..a034d7fc0f6 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl.qll @@ -559,7 +559,7 @@ pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } pragma[nomagic] -private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } +private predicate hasReadStep(Content c, Configuration config) { read(_, c, _, config) } pragma[nomagic] private predicate store( @@ -567,7 +567,7 @@ private predicate store( ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - readProj(tc.getContent(), config) and + hasReadStep(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl2.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl2.qll index aa0b6aba5b0..a034d7fc0f6 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl2.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImpl2.qll @@ -559,7 +559,7 @@ pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } pragma[nomagic] -private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } +private predicate hasReadStep(Content c, Configuration config) { read(_, c, _, config) } pragma[nomagic] private predicate store( @@ -567,7 +567,7 @@ private predicate store( ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - readProj(tc.getContent(), config) and + hasReadStep(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImplForHttpClientLibraries.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImplForHttpClientLibraries.qll index aa0b6aba5b0..a034d7fc0f6 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImplForHttpClientLibraries.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImplForHttpClientLibraries.qll @@ -559,7 +559,7 @@ pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } pragma[nomagic] -private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } +private predicate hasReadStep(Content c, Configuration config) { read(_, c, _, config) } pragma[nomagic] private predicate store( @@ -567,7 +567,7 @@ private predicate store( ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - readProj(tc.getContent(), config) and + hasReadStep(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImplForLibraries.qll b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImplForLibraries.qll index aa0b6aba5b0..a034d7fc0f6 100644 --- a/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImplForLibraries.qll +++ b/ruby/ql/lib/codeql/ruby/dataflow/internal/DataFlowImplForLibraries.qll @@ -559,7 +559,7 @@ pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } pragma[nomagic] -private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } +private predicate hasReadStep(Content c, Configuration config) { read(_, c, _, config) } pragma[nomagic] private predicate store( @@ -567,7 +567,7 @@ private predicate store( ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - readProj(tc.getContent(), config) and + hasReadStep(tc.getContent(), config) and stepFilter(node1, node2, config) } diff --git a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImpl.qll b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImpl.qll index aa0b6aba5b0..a034d7fc0f6 100644 --- a/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImpl.qll +++ b/swift/ql/lib/codeql/swift/dataflow/internal/DataFlowImpl.qll @@ -559,7 +559,7 @@ pragma[nomagic] private predicate notExpectsContent(NodeEx n) { not expectsContentCached(n.asNode(), _) } pragma[nomagic] -private predicate readProj(Content c, Configuration config) { read(_, c, _, config) } +private predicate hasReadStep(Content c, Configuration config) { read(_, c, _, config) } pragma[nomagic] private predicate store( @@ -567,7 +567,7 @@ private predicate store( ) { store(pragma[only_bind_into](node1.asNode()), tc, pragma[only_bind_into](node2.asNode()), contentType) and - readProj(tc.getContent(), config) and + hasReadStep(tc.getContent(), config) and stepFilter(node1, node2, config) }