Skip to content

Commit eb5d4ef

Browse files
committed
Merge branch 'main' into rust-ti-implementing-type-method
2 parents 98c6783 + 9d65b5f commit eb5d4ef

File tree

790 files changed

+86950
-4185
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

790 files changed

+86950
-4185
lines changed

.github/workflows/mad_modelDiff.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ jobs:
6868
DATABASE=$2
6969
cd codeql-$QL_VARIANT
7070
SHORTNAME=`basename $DATABASE`
71-
python java/ql/src/utils/modelgenerator/GenerateFlowModel.py --with-summaries --with-sinks $DATABASE $SHORTNAME/$QL_VARIANT
71+
python misc/scripts/models-as-data/generate_mad.py --language java --with-summaries --with-sinks $DATABASE $SHORTNAME/$QL_VARIANT
7272
mkdir -p $MODELS/$SHORTNAME
7373
mv java/ql/lib/ext/generated/$SHORTNAME/$QL_VARIANT $MODELS/$SHORTNAME
7474
cd ..

CODEOWNERS

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -17,6 +17,7 @@
1717

1818
# Experimental CodeQL cryptography
1919
**/experimental/quantum/ @github/ps-codeql
20+
/shared/quantum/ @github/ps-codeql
2021

2122
# CodeQL tools and associated docs
2223
/docs/codeql/codeql-cli/ @github/codeql-cli-reviewers

MODULE.bazel

Lines changed: 4 additions & 13 deletions
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,7 @@ bazel_dep(name = "bazel_skylib", version = "1.7.1")
2424
bazel_dep(name = "abseil-cpp", version = "20240116.1", repo_name = "absl")
2525
bazel_dep(name = "nlohmann_json", version = "3.11.3", repo_name = "json")
2626
bazel_dep(name = "fmt", version = "10.0.0")
27-
bazel_dep(name = "rules_kotlin", version = "2.0.0-codeql.1")
27+
bazel_dep(name = "rules_kotlin", version = "2.1.3-codeql.1")
2828
bazel_dep(name = "gazelle", version = "0.40.0")
2929
bazel_dep(name = "rules_dotnet", version = "0.17.4")
3030
bazel_dep(name = "googletest", version = "1.14.0.bcr.1")
@@ -193,10 +193,6 @@ use_repo(
193193
kotlin_extractor_deps,
194194
"codeql_kotlin_defaults",
195195
"codeql_kotlin_embeddable",
196-
"kotlin-compiler-1.5.0",
197-
"kotlin-compiler-1.5.10",
198-
"kotlin-compiler-1.5.20",
199-
"kotlin-compiler-1.5.30",
200196
"kotlin-compiler-1.6.0",
201197
"kotlin-compiler-1.6.20",
202198
"kotlin-compiler-1.7.0",
@@ -208,10 +204,7 @@ use_repo(
208204
"kotlin-compiler-2.0.20-Beta2",
209205
"kotlin-compiler-2.1.0-Beta1",
210206
"kotlin-compiler-2.1.20-Beta1",
211-
"kotlin-compiler-embeddable-1.5.0",
212-
"kotlin-compiler-embeddable-1.5.10",
213-
"kotlin-compiler-embeddable-1.5.20",
214-
"kotlin-compiler-embeddable-1.5.30",
207+
"kotlin-compiler-2.2.0-Beta1",
215208
"kotlin-compiler-embeddable-1.6.0",
216209
"kotlin-compiler-embeddable-1.6.20",
217210
"kotlin-compiler-embeddable-1.7.0",
@@ -223,10 +216,7 @@ use_repo(
223216
"kotlin-compiler-embeddable-2.0.20-Beta2",
224217
"kotlin-compiler-embeddable-2.1.0-Beta1",
225218
"kotlin-compiler-embeddable-2.1.20-Beta1",
226-
"kotlin-stdlib-1.5.0",
227-
"kotlin-stdlib-1.5.10",
228-
"kotlin-stdlib-1.5.20",
229-
"kotlin-stdlib-1.5.30",
219+
"kotlin-compiler-embeddable-2.2.0-Beta1",
230220
"kotlin-stdlib-1.6.0",
231221
"kotlin-stdlib-1.6.20",
232222
"kotlin-stdlib-1.7.0",
@@ -238,6 +228,7 @@ use_repo(
238228
"kotlin-stdlib-2.0.20-Beta2",
239229
"kotlin-stdlib-2.1.0-Beta1",
240230
"kotlin-stdlib-2.1.20-Beta1",
231+
"kotlin-stdlib-2.2.0-Beta1",
241232
)
242233

243234
go_sdk = use_extension("@rules_go//go:extensions.bzl", "go_sdk")

actions/ql/lib/CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## 0.4.9
2+
3+
No user-facing changes.
4+
15
## 0.4.8
26

37
No user-facing changes.
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
## 0.4.9
2+
3+
No user-facing changes.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
---
2-
lastReleaseVersion: 0.4.8
2+
lastReleaseVersion: 0.4.9

actions/ql/lib/qlpack.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name: codeql/actions-all
2-
version: 0.4.9-dev
2+
version: 0.4.10-dev
33
library: true
44
warnOnImplicitThis: true
55
dependencies:

actions/ql/src/CHANGELOG.md

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,7 @@
1+
## 0.6.1
2+
3+
No user-facing changes.
4+
15
## 0.6.0
26

37
### Breaking Changes
Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
## 0.6.1
2+
3+
No user-facing changes.
Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
---
2-
lastReleaseVersion: 0.6.0
2+
lastReleaseVersion: 0.6.1

actions/ql/src/qlpack.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name: codeql/actions-queries
2-
version: 0.6.1-dev
2+
version: 0.6.2-dev
33
library: false
44
warnOnImplicitThis: true
55
groups: [actions, queries]

cpp/ql/integration-tests/query-suite/not_included_in_qls.expected

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -299,6 +299,7 @@ ql/cpp/ql/src/experimental/cryptography/inventory/new_models/SigningAlgorithms.q
299299
ql/cpp/ql/src/experimental/cryptography/inventory/new_models/SymmetricEncryptionAlgorithms.ql
300300
ql/cpp/ql/src/experimental/cryptography/inventory/new_models/SymmetricPaddingAlgorithms.ql
301301
ql/cpp/ql/src/experimental/cryptography/inventory/new_models/UnknownAsymmetricKeyGeneration.ql
302+
ql/cpp/ql/src/experimental/quantum/PrintCBOMGraph.ql
302303
ql/cpp/ql/src/external/examples/filters/BumpMetricBy10.ql
303304
ql/cpp/ql/src/external/examples/filters/EditDefectMessage.ql
304305
ql/cpp/ql/src/external/examples/filters/ExcludeGeneratedCode.ql

cpp/ql/lib/CHANGELOG.md

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,9 @@
1+
## 4.3.1
2+
3+
### Bug Fixes
4+
5+
* Fixed an infinite loop in `semmle.code.cpp.rangeanalysis.new.RangeAnalysis` when computing ranges in very large and complex function bodies.
6+
17
## 4.3.0
28

39
### New Features
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
---
2+
category: fix
3+
---
4+
* Fixed a problem where `asExpr()` on `DataFlow::Node` would never return `ClassAggregateLiteral`s.
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
---
2+
category: fix
3+
---
4+
* Fixed a problem where `asExpr()` on `DataFlow::Node` would never return `ArrayAggregateLiteral`s.
Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,4 @@
1+
---
2+
category: feature
3+
---
4+
* Added support for `wmain` as part of the ArgvSource model.
Lines changed: 9 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,9 @@
1+
---
2+
category: breaking
3+
---
4+
* Deleted the deprecated `userInputArgument` predicate and its convenience accessor from the `Security.qll`.
5+
* Deleted the deprecated `userInputReturned` predicate and its convenience accessor from the `Security.qll`.
6+
* Deleted the deprecated `userInputReturn` predicate from the `Security.qll`.
7+
* Deleted the deprecated `isUserInput` predicate and its convenience accessor from the `Security.qll`.
8+
* Deleted the deprecated `userInputArgument` predicate from the `SecurityOptions.qll`.
9+
* Deleted the deprecated `userInputReturned` predicate from the `SecurityOptions.qll`.
Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,5 @@
1+
## 4.3.1
2+
3+
### Bug Fixes
4+
5+
* Fixed an infinite loop in `semmle.code.cpp.rangeanalysis.new.RangeAnalysis` when computing ranges in very large and complex function bodies.

cpp/ql/lib/codeql-pack.release.yml

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,2 @@
11
---
2-
lastReleaseVersion: 4.3.0
2+
lastReleaseVersion: 4.3.1
Lines changed: 113 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,113 @@
1+
private import cpp as Language
2+
import semmle.code.cpp.dataflow.new.DataFlow
3+
import codeql.quantum.experimental.Model
4+
5+
module CryptoInput implements InputSig<Language::Location> {
6+
class DataFlowNode = DataFlow::Node;
7+
8+
class LocatableElement = Language::Locatable;
9+
10+
class UnknownLocation = Language::UnknownDefaultLocation;
11+
12+
LocatableElement dfn_to_element(DataFlow::Node node) {
13+
result = node.asExpr() or
14+
result = node.asParameter() or
15+
result = node.asVariable()
16+
}
17+
18+
string locationToFileBaseNameAndLineNumberString(Location location) {
19+
result = location.getFile().getBaseName() + ":" + location.getStartLine()
20+
}
21+
22+
predicate artifactOutputFlowsToGenericInput(
23+
DataFlow::Node artifactOutput, DataFlow::Node otherInput
24+
) {
25+
ArtifactFlow::flow(artifactOutput, otherInput)
26+
}
27+
}
28+
29+
module Crypto = CryptographyBase<Language::Location, CryptoInput>;
30+
31+
module ArtifactFlowConfig implements DataFlow::ConfigSig {
32+
predicate isSource(DataFlow::Node source) {
33+
source = any(Crypto::ArtifactInstance artifact).getOutputNode()
34+
}
35+
36+
predicate isSink(DataFlow::Node sink) {
37+
sink = any(Crypto::FlowAwareElement other).getInputNode()
38+
}
39+
40+
predicate isBarrierOut(DataFlow::Node node) {
41+
node = any(Crypto::FlowAwareElement element).getInputNode()
42+
}
43+
44+
predicate isBarrierIn(DataFlow::Node node) {
45+
node = any(Crypto::FlowAwareElement element).getOutputNode()
46+
}
47+
48+
predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) {
49+
node1.(AdditionalFlowInputStep).getOutput() = node2
50+
}
51+
}
52+
53+
module ArtifactFlow = DataFlow::Global<ArtifactFlowConfig>;
54+
55+
/**
56+
* Artifact output to node input configuration
57+
*/
58+
abstract class AdditionalFlowInputStep extends DataFlow::Node {
59+
abstract DataFlow::Node getOutput();
60+
61+
final DataFlow::Node getInput() { result = this }
62+
}
63+
64+
/**
65+
* Generic data source to node input configuration
66+
*/
67+
module GenericDataSourceFlowConfig implements DataFlow::ConfigSig {
68+
predicate isSource(DataFlow::Node source) {
69+
source = any(Crypto::GenericSourceInstance i).getOutputNode()
70+
}
71+
72+
predicate isSink(DataFlow::Node sink) {
73+
sink = any(Crypto::FlowAwareElement other).getInputNode()
74+
}
75+
76+
predicate isBarrierOut(DataFlow::Node node) {
77+
node = any(Crypto::FlowAwareElement element).getInputNode()
78+
}
79+
80+
predicate isBarrierIn(DataFlow::Node node) {
81+
node = any(Crypto::FlowAwareElement element).getOutputNode()
82+
}
83+
84+
predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) {
85+
node1.(AdditionalFlowInputStep).getOutput() = node2
86+
}
87+
}
88+
89+
module ArtifactUniversalFlowConfig implements DataFlow::ConfigSig {
90+
predicate isSource(DataFlow::Node source) {
91+
source = any(Crypto::ArtifactInstance artifact).getOutputNode()
92+
}
93+
94+
predicate isSink(DataFlow::Node sink) {
95+
sink = any(Crypto::FlowAwareElement other).getInputNode()
96+
}
97+
98+
predicate isBarrierOut(DataFlow::Node node) {
99+
node = any(Crypto::FlowAwareElement element).getInputNode()
100+
}
101+
102+
predicate isBarrierIn(DataFlow::Node node) {
103+
node = any(Crypto::FlowAwareElement element).getOutputNode()
104+
}
105+
106+
predicate isAdditionalFlowStep(DataFlow::Node node1, DataFlow::Node node2) {
107+
node1.(AdditionalFlowInputStep).getOutput() = node2
108+
}
109+
}
110+
111+
module ArtifactUniversalFlow = DataFlow::Global<ArtifactUniversalFlowConfig>;
112+
113+
import OpenSSL.OpenSSL

0 commit comments

Comments
 (0)