1
0
mirror of https://github.com/systemd/systemd.git synced 2024-12-22 17:35:35 +03:00

Merge pull request #22714 from mrc0mmand/codeql-docs

A couple of doc updates
This commit is contained in:
Luca Boccassi 2022-03-11 19:03:38 +00:00 committed by GitHub
commit 9c9a6123d7
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
2 changed files with 55 additions and 1 deletions

View File

@ -520,7 +520,7 @@ int manager_mdns_ipv6_fd(Manager *m) {
if (r < 0)
return log_error_errno(r, "mDNS-IPv6: Failed to set IPV6_UNICAST_HOPS: %m");
/* RFC 4795, section 2.5 recommends setting the TTL of UDP packets to 255. */
/* RFC 6762, section 11 recommends setting the TTL of UDP packets to 255. */
r = setsockopt_int(s, IPPROTO_IPV6, IPV6_MULTICAST_HOPS, 255);
if (r < 0)
return log_error_errno(r, "mDNS-IPv6: Failed to set IPV6_MULTICAST_HOPS: %m");

View File

@ -208,3 +208,57 @@ And finally run the autopkgtest itself:
where --test-name= is the name of the test you want to run/debug. The
--shell-fail option will pause the execution in case the test fails and shows
you the information how to connect to the testbed for further debugging.
Manually running LGTM/CodeQL analysis
=====================================
This is mostly useful for debugging various CodeQL/LGTM quirks.
Download the CodeQL Bundle from https://github.com/github/codeql-action/releases
and unpack it somewhere. From now the 'tutorial' assumes you have the `codeql`
binary from the unpacked archive in $PATH for brevity.
Switch to the systemd repository if not already:
$ cd <systemd-repo>
Create an initial CodeQL database:
$ CCACHE_DISABLE=1 codeql database create codeqldb --language=cpp -vvv
Disabling ccache is important, otherwise you might see CodeQL complaining:
No source code was seen and extracted to /home/mrc0mmand/repos/@ci-incubator/systemd/codeqldb.
This can occur if the specified build commands failed to compile or process any code.
- Confirm that there is some source code for the specified language in the project.
- For codebases written in Go, JavaScript, TypeScript, and Python, do not specify
an explicit --command.
- For other languages, the --command must specify a "clean" build which compiles
all the source code files without reusing existing build artefacts.
If you want to run all queries systemd uses in LGTM/CodeQL, run:
$ codeql database analyze codeqldb/ --format csv --output results.csv .github/codeql-custom.qls .lgtm/cpp-queries/*.ql -vvv
Note: this will take a while.
If you're interested in a specific check, the easiest way (without hunting down
the specific CodeQL query file) is to create a custom query suite. For example:
$ cat >test.qls <<EOF
- queries: .
from: codeql/cpp-queries
- include:
id:
- cpp/missing-return
EOF
And then execute it in the same way as above:
$ codeql database analyze codeqldb/ --format csv --output results.csv test.qls -vvv
More about query suites here: https://codeql.github.com/docs/codeql-cli/creating-codeql-query-suites/
The results are then located in the `results.csv` file as a comma separated
values list (obviously), which is the most human-friendly output format the
CodeQL utility provides (so far).