Skip to content

Commit 3388196

Browse files
committed
Merge branch 'main' into smaller-join-in-get-root-cause
2 parents e86b6b1 + e604756 commit 3388196

File tree

120 files changed

+4099
-1439
lines changed

Some content is hidden

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

120 files changed

+4099
-1439
lines changed

.bazelrc

Lines changed: 3 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,3 @@
1+
build --copt="-std=c++17"
2+
3+
try-import %workspace%/local.bazelrc

.bazelversion

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1 @@
1+
5.0.0

.github/actions/fetch-codeql/action.yml

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,12 +3,22 @@ description: Fetches the latest version of CodeQL
33
runs:
44
using: composite
55
steps:
6+
- name: Select platform - Linux
7+
if: runner.os == 'Linux'
8+
shell: bash
9+
run: echo "GA_CODEQL_CLI_PLATFORM=linux64" >> $GITHUB_ENV
10+
11+
- name: Select platform - MacOS
12+
if: runner.os == 'MacOS'
13+
shell: bash
14+
run: echo "GA_CODEQL_CLI_PLATFORM=osx64" >> $GITHUB_ENV
15+
616
- name: Fetch CodeQL
717
shell: bash
818
run: |
919
LATEST=$(gh release list --repo https://github.com/github/codeql-cli-binaries | cut -f 1 | grep -v beta | sort --version-sort | tail -1)
10-
gh release download --repo https://github.com/github/codeql-cli-binaries --pattern codeql-linux64.zip "$LATEST"
11-
unzip -q -d "${RUNNER_TEMP}" codeql-linux64.zip
20+
gh release download --repo https://github.com/github/codeql-cli-binaries --pattern codeql-$GA_CODEQL_CLI_PLATFORM.zip "$LATEST"
21+
unzip -q -d "${RUNNER_TEMP}" codeql-$GA_CODEQL_CLI_PLATFORM.zip
1222
echo "${RUNNER_TEMP}/codeql" >> "${GITHUB_PATH}"
1323
env:
1424
GITHUB_TOKEN: ${{ github.token }}

.github/workflows/swift-qltest.yml

Lines changed: 51 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,51 @@
1+
name: "Swift: Run QL Tests"
2+
3+
on:
4+
pull_request:
5+
paths:
6+
- "swift/**"
7+
- .github/workflows/swift-qltest.yml
8+
branches:
9+
- main
10+
defaults:
11+
run:
12+
working-directory: swift
13+
14+
jobs:
15+
qlformat:
16+
runs-on: ubuntu-latest
17+
steps:
18+
- uses: actions/checkout@v2
19+
- uses: ./.github/actions/fetch-codeql
20+
- name: Check QL formatting
21+
run: find ql "(" -name "*.ql" -or -name "*.qll" ")" -print0 | xargs -0 codeql query format --check-only
22+
qltest:
23+
runs-on: ${{ matrix.os }}
24+
strategy:
25+
fail-fast: false
26+
matrix:
27+
os : [ubuntu-20.04, macos-latest]
28+
steps:
29+
- uses: actions/checkout@v2
30+
- uses: ./.github/actions/fetch-codeql
31+
- name: Install bazelisk - Linux
32+
if: runner.os == 'Linux'
33+
run: |
34+
sudo apt-get update
35+
sudo apt-get install -y wget
36+
wget https://github.com/bazelbuild/bazelisk/releases/download/v1.11.0/bazelisk-linux-amd64
37+
mv bazelisk-linux-amd64 /usr/local/bin/bazel
38+
chmod +x /usr/local/bin/bazel
39+
- name: Install bazelisk - macOS
40+
if: runner.os == 'MacOS'
41+
run: |
42+
brew install bazelisk
43+
- name: Build Swift extractor
44+
run: |
45+
bazel run //swift:create-extractor-pack
46+
- name: Run QL tests
47+
run: |
48+
codeql test run --threads=0 --ram 5000 --search-path "${{ github.workspace }}/swift/extractor-pack" --check-databases --check-unused-labels --check-repeated-labels --check-redefined-labels --check-use-before-definition ql/test
49+
env:
50+
GITHUB_TOKEN: ${{ github.token }}
51+

.gitignore

Lines changed: 4 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -31,5 +31,8 @@ csharp/extractor/Semmle.Extraction.CSharp.Driver/Properties/launchSettings.json
3131
# Compiled class file
3232
*.class
3333

34-
# links create by bazel
34+
# links created by bazel
3535
/bazel-*
36+
37+
# CLion project files
38+
/.clwb

BUILD.bazel

Whitespace-only changes.

WORKSPACE.bazel

Lines changed: 10 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,2 +1,12 @@
11
# Please notice that any bazel targets and definitions in this repository are currently experimental
22
# and for internal use only.
3+
4+
workspace(name = "codeql")
5+
6+
load("//misc/bazel:workspace.bzl", "codeql_workspace")
7+
8+
codeql_workspace()
9+
10+
load("//misc/bazel:workspace_deps.bzl", "codeql_workspace_deps")
11+
12+
codeql_workspace_deps()

config/identical-files.json

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -383,7 +383,8 @@
383383
"csharp/ql/test/TestUtilities/InlineExpectationsTest.qll",
384384
"java/ql/test/TestUtilities/InlineExpectationsTest.qll",
385385
"python/ql/test/TestUtilities/InlineExpectationsTest.qll",
386-
"ruby/ql/test/TestUtilities/InlineExpectationsTest.qll"
386+
"ruby/ql/test/TestUtilities/InlineExpectationsTest.qll",
387+
"ql/ql/test/TestUtilities/InlineExpectationsTest.qll"
387388
],
388389
"C++ ExternalAPIs": [
389390
"cpp/ql/src/Security/CWE/CWE-020/ExternalAPIs.qll",

cpp/ql/lib/semmle/code/cpp/AutogeneratedFile.qll

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -84,6 +84,7 @@ private int fileHeaderLimit(File f) {
8484
fc = fileFirstComment(f) and
8585
result =
8686
min(int line |
87+
// code ending the initial comments
8788
exists(DeclarationEntry de, Location l |
8889
l = de.getLocation() and
8990
l.getFile() = f and
@@ -105,7 +106,13 @@ private int fileHeaderLimit(File f) {
105106
line > fc
106107
)
107108
or
109+
// end of the file
108110
line = f.getMetrics().getNumberOfLines()
111+
or
112+
// rarely, we've seen extremely long sequences of initial comments
113+
// (and/or limitations in the above constraints) cause an overflow of
114+
// the maximum string length. So don't look past 1000 lines regardless.
115+
line = 1000
109116
)
110117
)
111118
}

cpp/ql/lib/semmle/code/cpp/dataflow/internal/DataFlowImpl.qll

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -5047,6 +5047,7 @@ private module FlowExploration {
50475047
)
50485048
}
50495049

5050+
pragma[nomagic]
50505051
private predicate revPartialPathStep(
50515052
PartialPathNodeRev mid, NodeEx node, FlowState state, TRevSummaryCtx1 sc1, TRevSummaryCtx2 sc2,
50525053
TRevSummaryCtx3 sc3, RevPartialAccessPath ap, Configuration config

0 commit comments

Comments
 (0)