-
Notifications
You must be signed in to change notification settings - Fork 135
Commit
This commit does not belong to any branch on this repository, and may belong to a fork outside of the repository.
Add MuCodeQlQueries.qls and pin to the 0.9.12 codeq/cpp-queries pack
Adds the MuCodeQlQueries.qls file and changes the CodeQlAnalyzePlugin to use MuCodeQlQueries instead of the edk2 CodeQlQueries file. This runs the CodeQL queries that project mu cares about instead of the edk2 CodeQL queries that don't all apply. Signed-off-by: Michael Kubacki <[email protected]>
- Loading branch information
Showing
6 changed files
with
158 additions
and
2 deletions.
There are no files selected for viewing
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Original file line number | Diff line number | Diff line change |
---|---|---|
@@ -0,0 +1,135 @@ | ||
--- | ||
- description: Project Mu UEFI (C++) queries | ||
|
||
- queries: '.' | ||
from: codeql/[email protected] | ||
|
||
########################################################################################## | ||
# "Core" Queries - Part of Core SDL | ||
########################################################################################## | ||
|
||
## Errors | ||
- include: | ||
id: cpp/badoverflowguard | ||
- include: | ||
id: cpp/likely-bugs/memory-management/v2/conditionally-uninitialized-variable | ||
- include: | ||
id: cpp/pointer-overflow-check | ||
- include: | ||
id: cpp/unguardednullreturndereference | ||
|
||
## Warnings | ||
- include: | ||
id: cpp/comparison-with-wider-type | ||
- include: | ||
id: cpp/conditionallyuninitializedvariable | ||
- include: | ||
id: cpp/paddingbyteinformationdisclosure | ||
- include: | ||
id: cpp/uselesstest | ||
|
||
## Recommendations | ||
- include: | ||
id: cpp/redundant-null-check-param | ||
|
||
########################################################################################## | ||
# Extra Queries - Outside Core SDL | ||
########################################################################################## | ||
|
||
## Enable When Time is Available to Fix Issues | ||
# Hundreds of issues. Most appear valid. Type: Recommendation. | ||
#- include: | ||
# id: cpp/missing-null-test | ||
|
||
## Errors | ||
- include: | ||
id: cpp/infiniteloop | ||
- include: | ||
id: cpp/missing-return | ||
- include: | ||
id: cpp/no-space-for-terminator | ||
- include: | ||
id: cpp/pointer-overflow-check | ||
- include: | ||
id: cpp/redundant-null-check-simple | ||
- include: | ||
id: cpp/sizeof/const-int-argument | ||
- include: | ||
id: cpp/sizeof/sizeof-or-operation-as-argument | ||
- include: | ||
id: cpp/very-likely-overrunning-write | ||
|
||
## Warnings | ||
- include: | ||
id: cpp/comparison-precedence | ||
- include: | ||
id: cpp/implicit-bitfield-downcast | ||
- include: | ||
id: cpp/infinite-loop-with-unsatisfiable-exit-condition | ||
- include: | ||
id: cpp/offset-use-before-range-check | ||
- include: | ||
id: cpp/overflow-buffer | ||
- include: | ||
id: cpp/overflow-calculated | ||
- include: | ||
id: cpp/overflow-destination | ||
- include: | ||
id: cpp/return-stack-allocated-memory | ||
- include: | ||
id: cpp/static-buffer-overflow | ||
- include: | ||
id: cpp/unsigned-comparison-zero | ||
|
||
## Recommendations | ||
- include: | ||
id: cpp/missing-header-guard | ||
- include: | ||
id: cpp/unused-local-variable | ||
- include: | ||
id: cpp/unused-static-function | ||
- include: | ||
id: cpp/unused-static-variable | ||
|
||
# Note: Some queries above are not active by default with the below filter. | ||
# Update the filter and run the queries again to get all results. | ||
- include: | ||
tags: | ||
- "security" | ||
- "correctness" | ||
severity: | ||
- "error" | ||
- "warning" | ||
- "recommendation" | ||
|
||
# Specifically hide the results of these. | ||
# | ||
# The following rules have been evaluated and explicitly not included for the following reasons: | ||
# - `cpp/allocation-too-small` - Appears to be hardcoded for C standard library functions `malloc`, `calloc`, | ||
# `realloc`, so it consumes time without much value with custom allocation functions in the codebase. | ||
# - `cpp/commented-out-code` - Triggers (way) too often on MU_CHANGE tags. | ||
# - `cpp/duplicate-include-guard` - The <Phase>EntryPoint.h files includes a common include guard value | ||
# `__MODULE_ENTRY_POINT_H__`. This was the only occurrence found. So not very useful. | ||
# - `cpp/invalid-pointer-deref` - Very limited results with what appear to be false positives. | ||
# - `cpp/use-of-goto` - Goto is valid and allowed in the codebase. | ||
# - `cpp/useless-expression` - Triggers too often on cases where a NULL lib implementation is provided for a function. | ||
# Because the implementation simply returns, the check considers it useless. | ||
# - `cpp/weak-crypto/*` - Crypto algorithms are tracked outside CodeQL. | ||
- exclude: | ||
id: cpp/allocation-too-small | ||
- exclude: | ||
id: cpp/commented-out-code | ||
- exclude: | ||
id: cpp/duplicate-include-guard | ||
- exclude: | ||
id: cpp/invalid-pointer-deref | ||
- exclude: | ||
id: cpp/use-of-goto | ||
- exclude: | ||
id: cpp/useless-expression | ||
- exclude: | ||
id: cpp/weak-crypto/banned-hash-algorithms | ||
- exclude: | ||
id: cpp/weak-crypto/capi/banned-modes | ||
- exclude: | ||
id: cpp/weak-crypto/openssl/banned-hash-algorithms |
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters