From 9ab8580ca7c70c500dc18a77aae12b0972dd2a9f Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Fri, 27 Mar 2020 11:51:10 +0100 Subject: [PATCH 1/2] Data flow: No magic in parameterThroughFlowCand --- cpp/ql/src/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl.qll | 1 + 1 file changed, 1 insertion(+) 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 f7f9b2a03934..7d2d728b67e7 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 @@ -548,6 +548,7 @@ private predicate throughFlowNodeCand(Node node, Configuration config) { } /** Holds if flow may return from `callable`. */ +pragma[nomagic] private predicate returnFlowCallableCand( DataFlowCallable callable, ReturnKindExt kind, Configuration config ) { From 7890a322c864c1994037bd55fdb3f56c49eb95e5 Mon Sep 17 00:00:00 2001 From: Mathias Vorreiter Pedersen Date: Fri, 27 Mar 2020 11:51:38 +0100 Subject: [PATCH 2/2] C++/C#/Java: Sync identical files --- cpp/ql/src/semmle/code/cpp/dataflow/internal/DataFlowImpl.qll | 1 + cpp/ql/src/semmle/code/cpp/dataflow/internal/DataFlowImpl2.qll | 1 + cpp/ql/src/semmle/code/cpp/dataflow/internal/DataFlowImpl3.qll | 1 + cpp/ql/src/semmle/code/cpp/dataflow/internal/DataFlowImpl4.qll | 1 + .../src/semmle/code/cpp/dataflow/internal/DataFlowImplLocal.qll | 1 + .../src/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl2.qll | 1 + .../src/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl3.qll | 1 + .../src/semmle/code/cpp/ir/dataflow/internal/DataFlowImpl4.qll | 1 + .../ql/src/semmle/code/csharp/dataflow/internal/DataFlowImpl.qll | 1 + .../src/semmle/code/csharp/dataflow/internal/DataFlowImpl2.qll | 1 + .../src/semmle/code/csharp/dataflow/internal/DataFlowImpl3.qll | 1 + .../src/semmle/code/csharp/dataflow/internal/DataFlowImpl4.qll | 1 + .../src/semmle/code/csharp/dataflow/internal/DataFlowImpl5.qll | 1 + java/ql/src/semmle/code/java/dataflow/internal/DataFlowImpl.qll | 1 + java/ql/src/semmle/code/java/dataflow/internal/DataFlowImpl2.qll | 1 + java/ql/src/semmle/code/java/dataflow/internal/DataFlowImpl3.qll | 1 + java/ql/src/semmle/code/java/dataflow/internal/DataFlowImpl4.qll | 1 + java/ql/src/semmle/code/java/dataflow/internal/DataFlowImpl5.qll | 1 + 18 files changed, 18 insertions(+) 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 f7f9b2a03934..7d2d728b67e7 100644 --- a/cpp/ql/src/semmle/code/cpp/dataflow/internal/DataFlowImpl.qll +++ b/cpp/ql/src/semmle/code/cpp/dataflow/internal/DataFlowImpl.qll @@ -548,6 +548,7 @@ private predicate throughFlowNodeCand(Node node, Configuration config) { } /** Holds if flow may return from `callable`. */ +pragma[nomagic] private predicate returnFlowCallableCand( DataFlowCallable callable, ReturnKindExt kind, Configuration config ) { 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 f7f9b2a03934..7d2d728b67e7 100644 --- a/cpp/ql/src/semmle/code/cpp/dataflow/internal/DataFlowImpl2.qll +++ b/cpp/ql/src/semmle/code/cpp/dataflow/internal/DataFlowImpl2.qll @@ -548,6 +548,7 @@ private predicate throughFlowNodeCand(Node node, Configuration config) { } /** Holds if flow may return from `callable`. */ +pragma[nomagic] private predicate returnFlowCallableCand( DataFlowCallable callable, ReturnKindExt kind, Configuration config ) { 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 f7f9b2a03934..7d2d728b67e7 100644 --- a/cpp/ql/src/semmle/code/cpp/dataflow/internal/DataFlowImpl3.qll +++ b/cpp/ql/src/semmle/code/cpp/dataflow/internal/DataFlowImpl3.qll @@ -548,6 +548,7 @@ private predicate throughFlowNodeCand(Node node, Configuration config) { } /** Holds if flow may return from `callable`. */ +pragma[nomagic] private predicate returnFlowCallableCand( DataFlowCallable callable, ReturnKindExt kind, Configuration config ) { 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 f7f9b2a03934..7d2d728b67e7 100644 --- a/cpp/ql/src/semmle/code/cpp/dataflow/internal/DataFlowImpl4.qll +++ b/cpp/ql/src/semmle/code/cpp/dataflow/internal/DataFlowImpl4.qll @@ -548,6 +548,7 @@ private predicate throughFlowNodeCand(Node node, Configuration config) { } /** Holds if flow may return from `callable`. */ +pragma[nomagic] private predicate returnFlowCallableCand( DataFlowCallable callable, ReturnKindExt kind, Configuration config ) { 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 f7f9b2a03934..7d2d728b67e7 100644 --- a/cpp/ql/src/semmle/code/cpp/dataflow/internal/DataFlowImplLocal.qll +++ b/cpp/ql/src/semmle/code/cpp/dataflow/internal/DataFlowImplLocal.qll @@ -548,6 +548,7 @@ private predicate throughFlowNodeCand(Node node, Configuration config) { } /** Holds if flow may return from `callable`. */ +pragma[nomagic] private predicate returnFlowCallableCand( DataFlowCallable callable, ReturnKindExt kind, Configuration config ) { 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 f7f9b2a03934..7d2d728b67e7 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 @@ -548,6 +548,7 @@ private predicate throughFlowNodeCand(Node node, Configuration config) { } /** Holds if flow may return from `callable`. */ +pragma[nomagic] private predicate returnFlowCallableCand( DataFlowCallable callable, ReturnKindExt kind, Configuration config ) { 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 f7f9b2a03934..7d2d728b67e7 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 @@ -548,6 +548,7 @@ private predicate throughFlowNodeCand(Node node, Configuration config) { } /** Holds if flow may return from `callable`. */ +pragma[nomagic] private predicate returnFlowCallableCand( DataFlowCallable callable, ReturnKindExt kind, Configuration config ) { 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 f7f9b2a03934..7d2d728b67e7 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 @@ -548,6 +548,7 @@ private predicate throughFlowNodeCand(Node node, Configuration config) { } /** Holds if flow may return from `callable`. */ +pragma[nomagic] private predicate returnFlowCallableCand( DataFlowCallable callable, ReturnKindExt kind, Configuration config ) { 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 f7f9b2a03934..7d2d728b67e7 100644 --- a/csharp/ql/src/semmle/code/csharp/dataflow/internal/DataFlowImpl.qll +++ b/csharp/ql/src/semmle/code/csharp/dataflow/internal/DataFlowImpl.qll @@ -548,6 +548,7 @@ private predicate throughFlowNodeCand(Node node, Configuration config) { } /** Holds if flow may return from `callable`. */ +pragma[nomagic] private predicate returnFlowCallableCand( DataFlowCallable callable, ReturnKindExt kind, Configuration config ) { 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 f7f9b2a03934..7d2d728b67e7 100644 --- a/csharp/ql/src/semmle/code/csharp/dataflow/internal/DataFlowImpl2.qll +++ b/csharp/ql/src/semmle/code/csharp/dataflow/internal/DataFlowImpl2.qll @@ -548,6 +548,7 @@ private predicate throughFlowNodeCand(Node node, Configuration config) { } /** Holds if flow may return from `callable`. */ +pragma[nomagic] private predicate returnFlowCallableCand( DataFlowCallable callable, ReturnKindExt kind, Configuration config ) { 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 f7f9b2a03934..7d2d728b67e7 100644 --- a/csharp/ql/src/semmle/code/csharp/dataflow/internal/DataFlowImpl3.qll +++ b/csharp/ql/src/semmle/code/csharp/dataflow/internal/DataFlowImpl3.qll @@ -548,6 +548,7 @@ private predicate throughFlowNodeCand(Node node, Configuration config) { } /** Holds if flow may return from `callable`. */ +pragma[nomagic] private predicate returnFlowCallableCand( DataFlowCallable callable, ReturnKindExt kind, Configuration config ) { 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 f7f9b2a03934..7d2d728b67e7 100644 --- a/csharp/ql/src/semmle/code/csharp/dataflow/internal/DataFlowImpl4.qll +++ b/csharp/ql/src/semmle/code/csharp/dataflow/internal/DataFlowImpl4.qll @@ -548,6 +548,7 @@ private predicate throughFlowNodeCand(Node node, Configuration config) { } /** Holds if flow may return from `callable`. */ +pragma[nomagic] private predicate returnFlowCallableCand( DataFlowCallable callable, ReturnKindExt kind, Configuration config ) { 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 f7f9b2a03934..7d2d728b67e7 100644 --- a/csharp/ql/src/semmle/code/csharp/dataflow/internal/DataFlowImpl5.qll +++ b/csharp/ql/src/semmle/code/csharp/dataflow/internal/DataFlowImpl5.qll @@ -548,6 +548,7 @@ private predicate throughFlowNodeCand(Node node, Configuration config) { } /** Holds if flow may return from `callable`. */ +pragma[nomagic] private predicate returnFlowCallableCand( DataFlowCallable callable, ReturnKindExt kind, Configuration config ) { 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 f7f9b2a03934..7d2d728b67e7 100644 --- a/java/ql/src/semmle/code/java/dataflow/internal/DataFlowImpl.qll +++ b/java/ql/src/semmle/code/java/dataflow/internal/DataFlowImpl.qll @@ -548,6 +548,7 @@ private predicate throughFlowNodeCand(Node node, Configuration config) { } /** Holds if flow may return from `callable`. */ +pragma[nomagic] private predicate returnFlowCallableCand( DataFlowCallable callable, ReturnKindExt kind, Configuration config ) { 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 f7f9b2a03934..7d2d728b67e7 100644 --- a/java/ql/src/semmle/code/java/dataflow/internal/DataFlowImpl2.qll +++ b/java/ql/src/semmle/code/java/dataflow/internal/DataFlowImpl2.qll @@ -548,6 +548,7 @@ private predicate throughFlowNodeCand(Node node, Configuration config) { } /** Holds if flow may return from `callable`. */ +pragma[nomagic] private predicate returnFlowCallableCand( DataFlowCallable callable, ReturnKindExt kind, Configuration config ) { 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 f7f9b2a03934..7d2d728b67e7 100644 --- a/java/ql/src/semmle/code/java/dataflow/internal/DataFlowImpl3.qll +++ b/java/ql/src/semmle/code/java/dataflow/internal/DataFlowImpl3.qll @@ -548,6 +548,7 @@ private predicate throughFlowNodeCand(Node node, Configuration config) { } /** Holds if flow may return from `callable`. */ +pragma[nomagic] private predicate returnFlowCallableCand( DataFlowCallable callable, ReturnKindExt kind, Configuration config ) { 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 f7f9b2a03934..7d2d728b67e7 100644 --- a/java/ql/src/semmle/code/java/dataflow/internal/DataFlowImpl4.qll +++ b/java/ql/src/semmle/code/java/dataflow/internal/DataFlowImpl4.qll @@ -548,6 +548,7 @@ private predicate throughFlowNodeCand(Node node, Configuration config) { } /** Holds if flow may return from `callable`. */ +pragma[nomagic] private predicate returnFlowCallableCand( DataFlowCallable callable, ReturnKindExt kind, Configuration config ) { 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 f7f9b2a03934..7d2d728b67e7 100644 --- a/java/ql/src/semmle/code/java/dataflow/internal/DataFlowImpl5.qll +++ b/java/ql/src/semmle/code/java/dataflow/internal/DataFlowImpl5.qll @@ -548,6 +548,7 @@ private predicate throughFlowNodeCand(Node node, Configuration config) { } /** Holds if flow may return from `callable`. */ +pragma[nomagic] private predicate returnFlowCallableCand( DataFlowCallable callable, ReturnKindExt kind, Configuration config ) {