From ba21d793655c832f9ac766fcc02f1e84f4b7d0f7 Mon Sep 17 00:00:00 2001 From: Daniel Winsor Date: Wed, 8 Dec 2021 10:42:45 -0800 Subject: [PATCH 1/7] Add new warnings --- Cppcorecheck/CppCoreCheck.cpp | 18 +++++++++++++----- 1 file changed, 13 insertions(+), 5 deletions(-) diff --git a/Cppcorecheck/CppCoreCheck.cpp b/Cppcorecheck/CppCoreCheck.cpp index 8fe6b04..9e25181 100644 --- a/Cppcorecheck/CppCoreCheck.cpp +++ b/Cppcorecheck/CppCoreCheck.cpp @@ -2,8 +2,7 @@ // #include - -// update... +#include int main() { @@ -16,14 +15,23 @@ int main() return 0; } +std::optional getTempOptional() noexcept { return {}; } + +void RefrenceToTemp() noexcept +{ + if (const auto val = *getTempOptional()) // C26815 + { + (void)val; + } +} + void RawPointerAssignment() { // C26400: No Raw Pointer Assignment (r.11) // C26409: Avoid call new or delete explicitly (r.11) - //char* buffer = new char[30]; + char* buffer = new char[30]; - // BUG: FIX // C26481: Don't use pointer arithmetic. Use span instead (bounds.1) - //buffer[0] = 'a'; + buffer[0] = 'a'; } struct MyStruct { From 6f9c08528cb7d70f8a551cc9a18c6ddf66eaca91 Mon Sep 17 00:00:00 2001 From: Daniel Winsor Date: Wed, 8 Dec 2021 10:55:26 -0800 Subject: [PATCH 2/7] Updated workflow for latest fixes --- .github/workflows/main.yml | 18 +++++++----------- 1 file changed, 7 insertions(+), 11 deletions(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index 672bc35..c572a7f 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -8,32 +8,28 @@ on: env: build: '${{ github.workspace }}/build' + config: 'Debug' result: '${{ github.workspace }}/build/results.sarif' jobs: - build: - name: Run Analysis + analyze: + name: Analyze runs-on: windows-latest steps: - name: Checkout action uses: actions/checkout@v2.3.4 - - name: Initialize & Build - uses: lukka/run-cmake@v3 - with: - cmakeListsTxtPath: ${{ github.workspace }}/CMakeLists.txt - buildDirectory: ${{ env.build }} - cmakeGenerator: VS16Win64 + - name: Configure CMake + run: cmake -B ${{ env.build }} -DCMAKE_BUILD_TYPE=${{ env.config }} - name: Run Analysis - id: run-analysis - continue-on-error: true uses: microsoft/msvc-code-analysis-action@main + id: run-analysis with: cmakeBuildDirectory: ${{ env.build }} + buildConfiguration: ${{ env.config }} ruleset: All.ruleset - ignoreSystemHeaders: true - name: Upload SARIF to Github uses: github/codeql-action/upload-sarif@v1 From 65038238c8d5c35f367327420be3d2e3ff1bea8f Mon Sep 17 00:00:00 2001 From: Daniel Winsor Date: Wed, 8 Dec 2021 10:58:34 -0800 Subject: [PATCH 3/7] reverted job name --- .github/workflows/main.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.github/workflows/main.yml b/.github/workflows/main.yml index c572a7f..44b0054 100644 --- a/.github/workflows/main.yml +++ b/.github/workflows/main.yml @@ -12,7 +12,7 @@ env: result: '${{ github.workspace }}/build/results.sarif' jobs: - analyze: + build: name: Analyze runs-on: windows-latest From 365b06d770475945f4efee822820bc81e9c4ca49 Mon Sep 17 00:00:00 2001 From: Daniel Winsor Date: Wed, 8 Dec 2021 11:05:38 -0800 Subject: [PATCH 4/7] Add null dereference --- Cppcorecheck/CppCoreCheck.cpp | 11 +++++++++++ 1 file changed, 11 insertions(+) diff --git a/Cppcorecheck/CppCoreCheck.cpp b/Cppcorecheck/CppCoreCheck.cpp index 9e25181..407693b 100644 --- a/Cppcorecheck/CppCoreCheck.cpp +++ b/Cppcorecheck/CppCoreCheck.cpp @@ -34,6 +34,17 @@ void RawPointerAssignment() { buffer[0] = 'a'; } +int NullDereference() +{ + int* p = 0; + int q = 1; + if (q) + { + return *(p + 1); + } + return 0; +} + struct MyStruct { int x = 3; double y = 2.0; From 67be24ce1fec658f58fb59d8a9dfeefe4c02e59d Mon Sep 17 00:00:00 2001 From: Daniel Winsor Date: Wed, 8 Dec 2021 11:10:52 -0800 Subject: [PATCH 5/7] Removed const warnings. --- Cppcorecheck/CppCoreCheck.cpp | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Cppcorecheck/CppCoreCheck.cpp b/Cppcorecheck/CppCoreCheck.cpp index 407693b..8bf43ba 100644 --- a/Cppcorecheck/CppCoreCheck.cpp +++ b/Cppcorecheck/CppCoreCheck.cpp @@ -36,8 +36,8 @@ void RawPointerAssignment() { int NullDereference() { - int* p = 0; - int q = 1; + const int* p = 0; + const int q = 1; if (q) { return *(p + 1); From f750d37d2eb2f3de5d7cdd5cb86804a6fe29263e Mon Sep 17 00:00:00 2001 From: Daniel Winsor Date: Wed, 8 Dec 2021 11:35:46 -0800 Subject: [PATCH 6/7] Add C6011 --- All.ruleset | 1 + Cppcorecheck/CppCoreCheck.cpp | 6 ------ 2 files changed, 1 insertion(+), 6 deletions(-) diff --git a/All.ruleset b/All.ruleset index 4490319..26d82a9 100644 --- a/All.ruleset +++ b/All.ruleset @@ -1,6 +1,7 @@  + diff --git a/Cppcorecheck/CppCoreCheck.cpp b/Cppcorecheck/CppCoreCheck.cpp index 8bf43ba..6cfe5e6 100644 --- a/Cppcorecheck/CppCoreCheck.cpp +++ b/Cppcorecheck/CppCoreCheck.cpp @@ -6,12 +6,6 @@ int main() { - int* p = 0; - int q = 1; - if (q) - { - return *(p + 1); - } return 0; } From e83d52624460b1b23a261d3ab1a004e6ab1ec021 Mon Sep 17 00:00:00 2001 From: d-winsor Date: Fri, 19 Aug 2022 12:37:21 -0700 Subject: [PATCH 7/7] Trigger new workflow --- Cppcorecheck/CppCoreCheck.cpp | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Cppcorecheck/CppCoreCheck.cpp b/Cppcorecheck/CppCoreCheck.cpp index 6cfe5e6..41d722e 100644 --- a/Cppcorecheck/CppCoreCheck.cpp +++ b/Cppcorecheck/CppCoreCheck.cpp @@ -1,6 +1,8 @@ // ConsoleApp.cpp : This file contains the 'main' function. Program execution begins and ends there. // +// Trigger new workflow... + #include #include