Fix four out-of-bounds reads in the lexer and tag URI validation #1053
Workflow file for this run
This file contains hidden or 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
| name: Ubuntu | |
| on: | |
| push: | |
| branches: | |
| - develop | |
| - main | |
| paths: | |
| - .github/workflows/ubuntu.yml | |
| - cmake/** | |
| - include/** | |
| - single_include/** | |
| - tests/** | |
| - tools/** | |
| - .clang-tidy | |
| - CMakeLists.txt | |
| - Makefile | |
| pull_request: | |
| paths: | |
| - .github/workflows/ubuntu.yml | |
| - cmake/** | |
| - include/** | |
| - single_include/** | |
| - tests/** | |
| - tools/** | |
| - .clang-tidy | |
| - CMakeLists.txt | |
| - Makefile | |
| workflow_dispatch: | |
| env: | |
| JOBS: 3 | |
| concurrency: | |
| group: ${{github.workflow}}-${{github.ref}} | |
| cancel-in-progress: true | |
| jobs: | |
| ubuntu-latest: | |
| timeout-minutes: 10 | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| build_type: [ Debug, Release ] | |
| use_single_header: ["ON", "OFF"] | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - name: Configure CMake | |
| run: cmake -B ${{github.workspace}}/build_${{matrix.build_type}} -DCMAKE_BUILD_TYPE=${{matrix.build_type}} -DFK_YAML_BUILD_TEST=ON -DFK_YAML_USE_SINGLE_HEADER=${{matrix.use_single_header}} | |
| - name: Build | |
| run: cmake --build ${{github.workspace}}/build_${{matrix.build_type}} --config ${{matrix.build_type}} -j ${{env.JOBS}} | |
| - name: Test | |
| working-directory: ${{github.workspace}}/build_${{matrix.build_type}} | |
| run: ctest -C ${{matrix.build_type}} --output-on-failure -j ${{env.JOBS}} | |
| ci_test_clang_tidy: | |
| timeout-minutes: 10 | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - name: Run Clang-Tidy | |
| run: make clang-tidy | |
| ci_test_iwyu: | |
| timeout-minutes: 10 | |
| runs-on: ubuntu-24.04 | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - name: Install include-what-you-use | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y iwyu | |
| include-what-you-use --version | |
| - name: Run include-what-you-use | |
| run: make iwyu | |
| ci_test_valgrind: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - name: Install Valgrind | |
| run: | | |
| sudo apt-get update | |
| sudo apt-get install -y valgrind | |
| valgrind --version | |
| - name: Run Valgrind | |
| run: make valgrind | |
| ci_test_clang_sanitizers: | |
| runs-on: ubuntu-latest | |
| container: silkeh/clang:latest | |
| timeout-minutes: 10 | |
| steps: | |
| - name: Install git and unzip | |
| run: | | |
| apt-get update | |
| apt-get install -y git unzip | |
| git --version | |
| - uses: actions/checkout@v7 | |
| - name: Get latest CMake | |
| uses: lukka/get-cmake@latest | |
| - name: Run Clang Sanitizers | |
| run: make clang-sanitizers | |
| ci_examples: | |
| runs-on: ubuntu-latest | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - name: Build examples | |
| run: make examples | |
| ci_test_clang_cxx_standards: | |
| runs-on: ubuntu-latest | |
| container: silkeh/clang:latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| cxx_standard: [ "11", "14", "17", "20", "23" ] | |
| build_type: [ Debug, Release ] | |
| steps: | |
| - name: Install git and unzip | |
| run: | | |
| apt-get update | |
| apt-get install -y git unzip | |
| git --version | |
| - uses: actions/checkout@v7 | |
| - name: Get latest CMake | |
| uses: lukka/get-cmake@latest | |
| - name: Install package for test | |
| run: | | |
| cmake -B ${{github.workspace}}/build_for_package | |
| cmake --build ${{github.workspace}}/build_for_package --target install | |
| rm -rf ${{github.workspace}}/build_for_package | |
| - name: Configure CMake | |
| run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{matrix.build_type}} -DFK_YAML_BUILD_ALL_TEST=ON -DFK_YAML_TEST_TARGET_CXX_STANDARD=${{matrix.cxx_standard}} | |
| - name: Build & Test | |
| run: | | |
| cmake --build ${{github.workspace}}/build --config ${{matrix.build_type}} -j ${{env.JOBS}} | |
| cd ${{github.workspace}}/build | |
| ctest -C ${{matrix.build_type}} --output-on-failure -j ${{env.JOBS}} | |
| ci_test_gcc_cxx_standards: | |
| runs-on: ubuntu-latest | |
| container: gcc:latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| cxx_standard: [ "11", "14", "17", "20", "23" ] | |
| build_type: [ Debug, Release ] | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - name: Get latest CMake | |
| uses: lukka/get-cmake@latest | |
| - name: Install package for test | |
| run: | | |
| cmake -B ${{github.workspace}}/build_for_package | |
| cmake --build ${{github.workspace}}/build_for_package --target install | |
| rm -rf ${{github.workspace}}/build_for_package | |
| - name: Configure CMake and Ninja | |
| run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{matrix.build_type}} -DFK_YAML_BUILD_ALL_TEST=ON -DFK_YAML_TEST_TARGET_CXX_STANDARD=${{matrix.cxx_standard}} | |
| - name: Build & Test | |
| run: | | |
| cmake --build ${{github.workspace}}/build --config ${{matrix.build_type}} -j ${{env.JOBS}} | |
| cd ${{github.workspace}}/build | |
| ctest -C ${{matrix.build_type}} --output-on-failure -j ${{env.JOBS}} | |
| ci_test_clang_versions: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| compiler: [ "3.4", "3.5", "3.6", "3.7", "3.8", "3.9", "4", "5", "6", "7", "8", "9", "10", "11", "12", "13", "14", "15", "16", "17", "18", "19", "20", "21" ] | |
| build_type: [ Debug, Release ] | |
| container: silkeh/clang:${{matrix.compiler}} | |
| steps: | |
| - name: Edit repository URLs for old ubuntu releases. | |
| run: | | |
| sed -i s/deb.debian.org/archive.debian.org/g /etc/apt/sources.list | |
| sed -i s/security.debian.org/archive.debian.org/g /etc/apt/sources.list | |
| if: ${{ matrix.compiler == '3.4' || matrix.compiler == '3.5' || matrix.compiler == '3.6' || matrix.compiler == '3.7' || matrix.compiler == '3.8' || matrix.compiler == '3.9' || matrix.compiler == '7' || matrix.compiler == '8' || matrix.compiler == '9' || matrix.compiler == '10' }} | |
| - name: Install git and unzip | |
| run: | | |
| apt-get update | |
| apt-get install -y git unzip | |
| git --version | |
| - uses: actions/checkout@v7 | |
| - name: Get latest CMake and Ninja | |
| uses: lukka/get-cmake@latest | |
| - name: Install package for test | |
| run: | | |
| cmake -B ${{github.workspace}}/build_for_package | |
| cmake --build ${{github.workspace}}/build_for_package --target install | |
| rm -rf ${{github.workspace}}/build_for_package | |
| - name: Configure CMake | |
| run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{matrix.build_type}} -DFK_YAML_BUILD_ALL_TEST=ON | |
| - name: Build & Test | |
| run: | | |
| cmake --build ${{github.workspace}}/build --config ${{matrix.build_type}} -j ${{env.JOBS}} | |
| cd ${{github.workspace}}/build | |
| ctest -C ${{matrix.build_type}} --output-on-failure -j ${{env.JOBS}} | |
| ci_test_gcc_versions: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| compiler: [ "7", "8", "9", "10", "11", "12", "13", "14", "15", "16" ] | |
| build_type: [ Debug, Release ] | |
| container: gcc:${{matrix.compiler}} | |
| steps: | |
| - name: Edit repository URLs for old ubuntu releases. | |
| run: | | |
| sed -i s/deb.debian.org/archive.debian.org/g /etc/apt/sources.list | |
| sed -i s/security.debian.org/archive.debian.org/g /etc/apt/sources.list | |
| if: ${{ matrix.compiler == '7' || matrix.compiler == '8' }} | |
| - name: Install git and unzip | |
| run: | | |
| apt-get update | |
| apt-get install -y git unzip | |
| git --version | |
| - uses: actions/checkout@v7 | |
| - name: Get latest CMake and Ninja | |
| uses: lukka/get-cmake@latest | |
| - name: Install package for test | |
| run: | | |
| cmake -B ${{github.workspace}}/build_for_package | |
| cmake --build ${{github.workspace}}/build_for_package --target install | |
| rm -rf ${{github.workspace}}/build_for_package | |
| - name: Configure CMake | |
| run: cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{matrix.build_type}} -DFK_YAML_BUILD_ALL_TEST=ON | |
| - name: Build & Test | |
| run: | | |
| cmake --build ${{github.workspace}}/build --config ${{matrix.build_type}} -j ${{env.JOBS}} | |
| cd ${{github.workspace}}/build | |
| ctest -C ${{matrix.build_type}} --output-on-failure -j ${{env.JOBS}} | |
| ci_test_older_gcc_versions: | |
| runs-on: ubuntu-22.04 | |
| strategy: | |
| fail-fast: false | |
| matrix: | |
| build_type: [ Debug, Release ] | |
| gcc_ver: [ '5', '6' ] | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - name: add repository commonly needed to install GCC | |
| run: | | |
| sudo apt-get update | |
| sudo add-apt-repository -y ppa:ubuntu-toolchain-r/test | |
| sudo apt-get update | |
| - name: add repository for GCC 5 | |
| run: | | |
| sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 40976EAF437D05B5 | |
| sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32 | |
| sudo apt-get update | |
| # for g++-5 | |
| sudo apt-add-repository 'deb http://archive.ubuntu.com/ubuntu/ xenial main' | |
| sudo apt-add-repository 'deb http://archive.ubuntu.com/ubuntu/ xenial universe' | |
| sudo apt-get update | |
| if: ${{ matrix.gcc_ver == '5' }} | |
| - name: add repository for GCC 6 | |
| run: | | |
| sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 40976EAF437D05B5 | |
| sudo apt-key adv --keyserver keyserver.ubuntu.com --recv-keys 3B4FE6ACC0B21F32 | |
| sudo apt-get update | |
| # for g++-6 | |
| sudo apt-add-repository 'deb http://archive.ubuntu.com/ubuntu/ bionic main' | |
| sudo apt-add-repository 'deb http://archive.ubuntu.com/ubuntu/ bionic universe' | |
| sudo apt-get update | |
| if: ${{ matrix.gcc_ver == '6' }} | |
| - name: install GCC | |
| run: sudo apt-get install --no-install-recommends -y g++-${{matrix.gcc_ver}} | |
| - name: Configure CMake | |
| run: CXX=g++-${{matrix.gcc_ver}} cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{matrix.build_type}} -DFK_YAML_BUILD_TEST=ON | |
| - name: Build & Test | |
| run: | | |
| cmake --build ${{github.workspace}}/build --config ${{matrix.build_type}} -j ${{env.JOBS}} | |
| cd ${{github.workspace}}/build | |
| ctest -C ${{matrix.build_type}} --output-on-failure -j ${{env.JOBS}} | |
| ci_test_icpx: | |
| runs-on: ubuntu-latest | |
| strategy: | |
| matrix: | |
| build_type: [ Debug, Release ] | |
| steps: | |
| - uses: actions/checkout@v7 | |
| - name: Install Intel oneAPI Base Toolkit | |
| run: | # from the official document: https://www.intel.com/content/www/us/en/docs/oneapi/installation-guide-linux/2024-1/apt.html | |
| wget -O- https://apt.repos.intel.com/intel-gpg-keys/GPG-PUB-KEY-INTEL-SW-PRODUCTS.PUB | gpg --dearmor | sudo tee /usr/share/keyrings/oneapi-archive-keyring.gpg > /dev/null | |
| echo "deb [signed-by=/usr/share/keyrings/oneapi-archive-keyring.gpg] https://apt.repos.intel.com/oneapi all main" | sudo tee /etc/apt/sources.list.d/oneAPI.list | |
| sudo apt-get update | |
| sudo apt-get install -y intel-basekit | |
| - name: Configure CMake | |
| run: | | |
| source /opt/intel/oneapi/setvars.sh | |
| cmake -B ${{github.workspace}}/build -DCMAKE_BUILD_TYPE=${{matrix.build_type}} -DCMAKE_C_COMPILER=icx -DCMAKE_CXX_COMPILER=icpx -DFK_YAML_BUILD_TEST=ON | |
| - name: Build | |
| run: cmake --build ${{github.workspace}}/build --config ${{matrix.build_type}} -j ${{env.JOBS}} | |
| - name: Test | |
| run: ctest --test-dir ${{github.workspace}}/build -C ${{matrix.build_type}} --output-on-failure -j ${{env.JOBS}} |