Skip to content

Commit 6a0da2b

Browse files
authored
Merge branch 'main' into rp/fix-824
2 parents 3342bb5 + 89bd9b4 commit 6a0da2b

File tree

350 files changed

+3713
-781
lines changed

Some content is hidden

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

350 files changed

+3713
-781
lines changed

.github/workflows/code-scanning-pack-gen.yml

+6-4
Original file line numberDiff line numberDiff line change
@@ -68,15 +68,17 @@ jobs:
6868
- name: Determine ref for external help files
6969
id: determine-ref
7070
run: |
71-
if [[ $GITHUB_EVENT_NAME == "pull_request" || $GITHUB_EVENT_NAME == "merge_group" ]]; then
72-
echo "EXTERNAL_HELP_REF=$GITHUB_HEAD_REF" >> "$GITHUB_ENV"
71+
if [[ $GITHUB_EVENT_NAME == "pull_request" ]]; then
72+
EXTERNAL_HELP_REF="${{ github.event.pull_request.base.ref }}"
73+
elif [[ $GITHUB_EVENT_NAME == "merge_group" ]]; then
74+
EXTERNAL_HELP_REF="${{ github.event.merge_group.base_ref }}"
7375
else
74-
echo "EXTERNAL_HELP_REF=$GITHUB_REF" >> "$GITHUB_ENV"
76+
EXTERNAL_HELP_REF="$GITHUB_REF"
7577
fi
78+
echo "EXTERNAL_HELP_REF=$EXTERNAL_HELP_REF" >> "$GITHUB_ENV"
7679
echo "Using ref $EXTERNAL_HELP_REF for external help files."
7780
7881
- name: Checkout external help files
79-
continue-on-error: true
8082
id: checkout-external-help-files
8183
uses: actions/checkout@v4
8284
with:

.github/workflows/codeql_unit_tests.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -166,7 +166,7 @@ jobs:
166166
steps:
167167
- name: Check if run-test-suites job failed to complete, if so fail
168168
if: ${{ needs.run-test-suites.result == 'failure' }}
169-
uses: actions/github-script@v3
169+
uses: actions/github-script@v7
170170
with:
171171
script: |
172172
core.setFailed('Test run job failed')

.github/workflows/dispatch-matrix-test-on-comment.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ jobs:
4040
--json \
4141
-R github/codeql-coding-standards-release-engineering
4242
43-
- uses: actions/github-script@v6
43+
- uses: actions/github-script@v7
4444
if: ${{ github.event.issue.pull_request && contains(github.event.comment.body, '/test-matrix') && steps.check-write-permission.outputs.has-permission }}
4545
with:
4646
script: |

.github/workflows/dispatch-release-performance-check.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -40,7 +40,7 @@ jobs:
4040
--json \
4141
-R github/codeql-coding-standards-release-engineering
4242
43-
- uses: actions/github-script@v6
43+
- uses: actions/github-script@v7
4444
if: ${{ github.event.issue.pull_request && contains(github.event.comment.body, '/test-performance') && steps.check-write-permission.outputs.has-permission }}
4545
with:
4646
script: |

amendments.csv

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@ c,MISRA-C-2012,Amendment4,RULE-11-3,Yes,Expand,No,Easy
1515
c,MISRA-C-2012,Amendment4,RULE-11-8,Yes,Expand,No,Easy
1616
c,MISRA-C-2012,Amendment4,RULE-13-2,Yes,Expand,No,Very Hard
1717
c,MISRA-C-2012,Amendment4,RULE-18-6,Yes,Expand,No,Medium
18-
c,MISRA-C-2012,Amendment4,RULE-18-8,Yes,Split,No,Easy
18+
c,MISRA-C-2012,Amendment4,RULE-18-8,Yes,Split,Yes,Easy
1919
c,MISRA-C-2012,Corrigendum2,RULE-2-2,Yes,Clarification,No,Import
2020
c,MISRA-C-2012,Corrigendum2,RULE-2-7,Yes,Clarification,No,Import
2121
c,MISRA-C-2012,Corrigendum2,RULE-3-1,Yes,Refine,No,Easy

c/cert/src/codeql-pack.lock.yml

+13-7
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,23 @@
22
lockVersion: 1.0.0
33
dependencies:
44
codeql/cpp-all:
5-
version: 0.12.9
5+
version: 1.4.2
66
codeql/dataflow:
7-
version: 0.2.3
7+
version: 1.1.1
8+
codeql/mad:
9+
version: 1.0.7
810
codeql/rangeanalysis:
9-
version: 0.0.11
11+
version: 1.0.7
1012
codeql/ssa:
11-
version: 0.2.12
13+
version: 1.0.7
1214
codeql/tutorial:
13-
version: 0.2.12
15+
version: 1.0.7
16+
codeql/typeflow:
17+
version: 1.0.7
1418
codeql/typetracking:
15-
version: 0.2.12
19+
version: 1.0.7
1620
codeql/util:
17-
version: 0.2.12
21+
version: 1.0.7
22+
codeql/xml:
23+
version: 1.0.7
1824
compiled: false

c/cert/src/qlpack.yml

+2-2
Original file line numberDiff line numberDiff line change
@@ -1,8 +1,8 @@
11
name: codeql/cert-c-coding-standards
2-
version: 2.38.0-dev
2+
version: 2.40.0-dev
33
description: CERT C 2016
44
suites: codeql-suites
55
license: MIT
66
dependencies:
77
codeql/common-c-coding-standards: '*'
8-
codeql/cpp-all: 0.12.9
8+
codeql/cpp-all: 1.4.2

c/cert/src/rules/ARR37-C/DoNotUsePointerArithmeticOnNonArrayObjectPointers.ql

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
import cpp
1515
import codingstandards.c.cert
16-
import codingstandards.cpp.dataflow.DataFlow
16+
import semmle.code.cpp.dataflow.DataFlow
1717
import NonArrayPointerToArrayIndexingExprFlow::PathGraph
1818

1919
/**

c/cert/src/rules/ARR39-C/DoNotAddOrSubtractAScaledIntegerToAPointer.ql

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
import cpp
1515
import codingstandards.c.cert
1616
import codingstandards.cpp.Pointers
17-
import codingstandards.cpp.dataflow.TaintTracking
17+
import semmle.code.cpp.dataflow.TaintTracking
1818
import ScaledIntegerPointerArithmeticFlow::PathGraph
1919

2020
/**

c/cert/src/rules/CON30-C/CleanUpThreadSpecificStorage.ql

+2-2
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@
1515
import cpp
1616
import codingstandards.c.cert
1717
import codingstandards.cpp.Concurrency
18-
import codingstandards.cpp.dataflow.TaintTracking
19-
import codingstandards.cpp.dataflow.DataFlow
18+
import semmle.code.cpp.dataflow.TaintTracking
19+
import semmle.code.cpp.dataflow.DataFlow
2020

2121
module TssCreateToTssDeleteConfig implements DataFlow::ConfigSig {
2222
predicate isSource(DataFlow::Node node) {

c/cert/src/rules/CON34-C/AppropriateThreadObjectStorageDurations.ql

+2-2
Original file line numberDiff line numberDiff line change
@@ -15,8 +15,8 @@
1515
import cpp
1616
import codingstandards.c.cert
1717
import codingstandards.cpp.Concurrency
18-
import codingstandards.cpp.dataflow.TaintTracking
19-
import codingstandards.cpp.dataflow.DataFlow
18+
import semmle.code.cpp.dataflow.TaintTracking
19+
import semmle.code.cpp.dataflow.DataFlow
2020
import semmle.code.cpp.commons.Alloc
2121

2222
from C11ThreadCreateCall tcc, StackVariable sv, Expr arg, Expr acc

c/cert/src/rules/CON34-C/ThreadObjectStorageDurationsNotInitialized.ql

+2-2
Original file line numberDiff line numberDiff line change
@@ -16,8 +16,8 @@
1616
import cpp
1717
import codingstandards.c.cert
1818
import codingstandards.cpp.Concurrency
19-
import codingstandards.cpp.dataflow.TaintTracking
20-
import codingstandards.cpp.dataflow.DataFlow
19+
import semmle.code.cpp.dataflow.TaintTracking
20+
import semmle.code.cpp.dataflow.DataFlow
2121

2222
from TSSGetFunctionCall tsg, ThreadedFunction tf
2323
where

c/cert/src/rules/DCL30-C/AppropriateStorageDurationsFunctionReturn.ql

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
import cpp
1515
import codingstandards.c.cert
16-
import codingstandards.cpp.dataflow.DataFlow
16+
import semmle.code.cpp.dataflow.DataFlow
1717

1818
class Source extends StackVariable {
1919
Source() { not this instanceof Parameter }

c/cert/src/rules/ERR30-C/FunctionCallBeforeErrnoCheck.ql

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
import cpp
1515
import codingstandards.c.cert
1616
import codingstandards.c.Errno
17-
import codingstandards.cpp.dataflow.DataFlow
17+
import semmle.code.cpp.dataflow.DataFlow
1818

1919
/**
2020
* A call to an `OutOfBandErrnoSettingFunction`

c/cert/src/rules/EXP30-C/DependenceOnOrderOfFunctionArgumentsForSideEffects.ql

+2-2
Original file line numberDiff line numberDiff line change
@@ -14,8 +14,8 @@
1414
import cpp
1515
import codingstandards.c.cert
1616
import codingstandards.cpp.SideEffect
17-
import codingstandards.cpp.dataflow.DataFlow
18-
import codingstandards.cpp.dataflow.TaintTracking
17+
import semmle.code.cpp.dataflow.DataFlow
18+
import semmle.code.cpp.dataflow.TaintTracking
1919
import semmle.code.cpp.valuenumbering.GlobalValueNumbering
2020

2121
/** Holds if the function's return value is derived from the `AliasParamter` p. */

c/cert/src/rules/EXP35-C/DoNotModifyObjectsWithTemporaryLifetime.ql

+1-12
Original file line numberDiff line numberDiff line change
@@ -13,18 +13,7 @@
1313

1414
import cpp
1515
import codingstandards.c.cert
16-
17-
/**
18-
* A struct or union type that contains an array type
19-
*/
20-
class StructOrUnionTypeWithArrayField extends Struct {
21-
StructOrUnionTypeWithArrayField() {
22-
this.getAField().getUnspecifiedType() instanceof ArrayType
23-
or
24-
// nested struct or union containing an array type
25-
this.getAField().getUnspecifiedType().(Struct) instanceof StructOrUnionTypeWithArrayField
26-
}
27-
}
16+
import codingstandards.cpp.lifetimes.CLifetimes
2817

2918
// Note: Undefined behavior is possible regardless of whether the accessed field from the returned
3019
// struct is an array or a scalar (i.e. arithmetic and pointer types) member, according to the standard.

c/cert/src/rules/EXP36-C/DoNotCastPointerToMoreStrictlyAlignedPointerType.ql

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
import cpp
1515
import codingstandards.c.cert
1616
import codingstandards.cpp.Alignment
17-
import codingstandards.cpp.dataflow.DataFlow
17+
import semmle.code.cpp.dataflow.DataFlow
1818
import semmle.code.cpp.rangeanalysis.SimpleRangeAnalysis
1919
import ExprWithAlignmentToCStyleCastFlow::PathGraph
2020

c/cert/src/rules/EXP37-C/DoNotCallFunctionPointerWithIncompatibleType.ql

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
import cpp
1515
import codingstandards.c.cert
16-
import codingstandards.cpp.dataflow.DataFlow
16+
import semmle.code.cpp.dataflow.DataFlow
1717
import SuspectFunctionPointerToCallFlow::PathGraph
1818

1919
/**

c/cert/src/rules/EXP39-C/DoNotAccessVariableViaPointerOfIncompatibleType.ql

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313

1414
import cpp
1515
import codingstandards.c.cert
16-
import codingstandards.cpp.dataflow.DataFlow
16+
import semmle.code.cpp.dataflow.DataFlow
1717
import semmle.code.cpp.controlflow.Dominance
1818
import IndirectCastFlow::PathGraph
1919

c/cert/src/rules/EXP40-C/DoNotModifyConstantObjects.ql

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
import cpp
1414
import codingstandards.c.cert
15-
import codingstandards.cpp.dataflow.DataFlow
15+
import semmle.code.cpp.dataflow.DataFlow
1616
import CastFlow::PathGraph
1717
import codingstandards.cpp.SideEffect
1818

c/cert/src/rules/EXP43-C/RestrictPointerReferencesOverlappingObject.ql

+1-1
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,7 @@
1111
*/
1212

1313
import cpp
14-
import codingstandards.cpp.dataflow.DataFlow
14+
import semmle.code.cpp.dataflow.DataFlow
1515
import semmle.code.cpp.controlflow.Dominance
1616
import codingstandards.c.cert
1717
import codingstandards.cpp.Variable

c/cert/src/rules/FIO37-C/SuccessfulFgetsOrFgetwsMayReturnAnEmptyString.ql

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@ import cpp
1414
import codingstandards.c.cert
1515
import codingstandards.cpp.FgetsErrorManagement
1616
import codingstandards.cpp.Dereferenced
17-
import codingstandards.cpp.dataflow.TaintTracking
17+
import semmle.code.cpp.dataflow.TaintTracking
1818

1919
/*
2020
* CFG nodes that follows a successful call to `fgets`

c/cert/src/rules/FIO44-C/OnlyUseValuesForFsetposThatAreReturnedFromFgetpos.ql

+1-1
Original file line numberDiff line numberDiff line change
@@ -12,7 +12,7 @@
1212

1313
import cpp
1414
import codingstandards.c.cert
15-
import codingstandards.cpp.dataflow.DataFlow
15+
import semmle.code.cpp.dataflow.DataFlow
1616

1717
class FgetposCall extends FunctionCall {
1818
FgetposCall() { this.getTarget().hasGlobalOrStdName("fgetpos") }

c/cert/src/rules/FIO45-C/ToctouRaceConditionsWhileAccessingFiles.ql

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
import cpp
1515
import codingstandards.c.cert
1616
import codingstandards.cpp.standardlibrary.FileAccess
17-
import codingstandards.cpp.dataflow.DataFlow
17+
import semmle.code.cpp.dataflow.DataFlow
1818
import semmle.code.cpp.valuenumbering.GlobalValueNumbering
1919

2020
/**

c/cert/src/rules/MEM35-C/InsufficientMemoryAllocatedForObject.ql

+1-1
Original file line numberDiff line numberDiff line change
@@ -16,7 +16,7 @@ import cpp
1616
import codingstandards.c.cert
1717
import codingstandards.cpp.Overflow
1818
import semmle.code.cpp.controlflow.Guards
19-
import codingstandards.cpp.dataflow.TaintTracking
19+
import semmle.code.cpp.dataflow.TaintTracking
2020
import semmle.code.cpp.models.Models
2121

2222
/**

c/cert/src/rules/MEM36-C/DoNotModifyAlignmentOfMemoryWithRealloc.ql

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
import cpp
1616
import codingstandards.c.cert
1717
import codingstandards.cpp.Alignment
18-
import codingstandards.cpp.dataflow.DataFlow
18+
import semmle.code.cpp.dataflow.DataFlow
1919
import AlignedAllocToReallocFlow::PathGraph
2020

2121
int getStatedValue(Expr e) {

c/cert/src/rules/MSC33-C/DoNotPassInvalidDataToTheAsctimeFunction.ql

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414

1515
import cpp
1616
import codingstandards.c.cert
17-
import codingstandards.cpp.dataflow.DataFlow
17+
import semmle.code.cpp.dataflow.DataFlow
1818

1919
/**
2020
* The argument of a call to `asctime`

c/cert/src/rules/MSC39-C/DoNotCallVaArgOnAVaListThatHasAnIndeterminateValue.ql

+1-1
Original file line numberDiff line numberDiff line change
@@ -13,7 +13,7 @@
1313
import cpp
1414
import codingstandards.c.cert
1515
import codingstandards.cpp.Macro
16-
import codingstandards.cpp.dataflow.DataFlow
16+
import semmle.code.cpp.dataflow.DataFlow
1717

1818
abstract class VaAccess extends Expr { }
1919

c/cert/src/rules/SIG30-C/CallOnlyAsyncSafeFunctionsWithinSignalHandlers.ql

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
import cpp
1515
import codingstandards.c.cert
1616
import codingstandards.c.Signal
17-
import codingstandards.cpp.dataflow.DataFlow
17+
import semmle.code.cpp.dataflow.DataFlow
1818

1919
/**
2020
* Does not access an external variable except

c/cert/src/rules/SIG35-C/DoNotReturnFromAComputationalExceptionHandler.ql

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
import cpp
1515
import codingstandards.c.cert
1616
import codingstandards.c.Signal
17-
import codingstandards.cpp.dataflow.DataFlow
17+
import semmle.code.cpp.dataflow.DataFlow
1818

1919
/**
2020
* CFG nodes preceeding a `ReturnStmt`

c/cert/src/rules/STR30-C/DoNotAttemptToModifyStringLiterals.ql

+1-1
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
import cpp
1515
import codingstandards.c.cert
1616
import semmle.code.cpp.security.BufferWrite
17-
import codingstandards.cpp.dataflow.DataFlow
17+
import semmle.code.cpp.dataflow.DataFlow
1818

1919
/**
2020
* Class that includes into `BufferWrite` functions that will modify their

c/cert/src/rules/STR31-C/StringsHasSufficientSpaceForTheNullTerminator.ql

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515

1616
import cpp
1717
import codingstandards.c.cert
18-
import codingstandards.cpp.dataflow.TaintTracking
18+
import semmle.code.cpp.dataflow.TaintTracking
1919
import codingstandards.cpp.PossiblyUnsafeStringOperation
2020

2121
/**

c/cert/src/rules/STR32-C/NonNullTerminatedToFunctionThatExpectsAString.ql

+1-1
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,7 @@
1515
import cpp
1616
import codingstandards.c.cert
1717
import codingstandards.cpp.Naming
18-
import codingstandards.cpp.dataflow.TaintTracking
18+
import semmle.code.cpp.dataflow.TaintTracking
1919
import codingstandards.cpp.PossiblyUnsafeStringOperation
2020
import semmle.code.cpp.valuenumbering.GlobalValueNumbering
2121

c/cert/test/codeql-pack.lock.yml

+13-7
Original file line numberDiff line numberDiff line change
@@ -2,17 +2,23 @@
22
lockVersion: 1.0.0
33
dependencies:
44
codeql/cpp-all:
5-
version: 0.12.9
5+
version: 1.4.2
66
codeql/dataflow:
7-
version: 0.2.3
7+
version: 1.1.1
8+
codeql/mad:
9+
version: 1.0.7
810
codeql/rangeanalysis:
9-
version: 0.0.11
11+
version: 1.0.7
1012
codeql/ssa:
11-
version: 0.2.12
13+
version: 1.0.7
1214
codeql/tutorial:
13-
version: 0.2.12
15+
version: 1.0.7
16+
codeql/typeflow:
17+
version: 1.0.7
1418
codeql/typetracking:
15-
version: 0.2.12
19+
version: 1.0.7
1620
codeql/util:
17-
version: 0.2.12
21+
version: 1.0.7
22+
codeql/xml:
23+
version: 1.0.7
1824
compiled: false

c/cert/test/qlpack.yml

+1-1
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,5 @@
11
name: codeql/cert-c-coding-standards-tests
2-
version: 2.38.0-dev
2+
version: 2.40.0-dev
33
extractor: cpp
44
license: MIT
55
dependencies:

c/cert/test/rules/ARR32-C/VariableLengthArraySizeNotInValidRange.expected

+2
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,5 @@
1+
WARNING: module 'DataFlow' has been deprecated and may be removed in future (VariableLengthArraySizeNotInValidRange.ql:104,11-19)
2+
WARNING: module 'TaintTracking' has been deprecated and may be removed in future (VariableLengthArraySizeNotInValidRange.ql:87,5-18)
13
| test.c:14:8:14:8 | VLA declaration | Variable-length array dimension size may be in an invalid range. |
24
| test.c:15:8:15:8 | VLA declaration | Variable-length array dimension size may be in an invalid range. |
35
| test.c:16:8:16:8 | VLA declaration | Variable-length array dimension size may be in an invalid range. |

0 commit comments

Comments
 (0)