diff --git a/.gitea/workflows/ci.yaml b/.gitea/workflows/ci.yaml index 7113c07..c1a90d6 100644 --- a/.gitea/workflows/ci.yaml +++ b/.gitea/workflows/ci.yaml @@ -37,6 +37,23 @@ jobs: fail_on_failure: 'true' - run: echo "🍏 This job's status is ${{ job.status }}." + sanitizer: + runs-on: ubuntu-latest + steps: + - name: Check out repository code + uses: actions/checkout@v4 + - name: dependencies + run: | + sudo apt-get update -y + sudo apt-get install -y cmake gcc moreutils + - name: build with AddressSanitizer and UBSan + run: | + cmake -S . -B build/asan -DAKERR_SANITIZE=address,undefined + cmake --build build/asan + - name: test with AddressSanitizer and UBSan + run: ctest --test-dir build/asan --output-on-failure + - run: echo "🍏 This job's status is ${{ job.status }}." + coverage: runs-on: ubuntu-latest steps: diff --git a/src/error.c b/src/error.c index 4182d50..5312da7 100644 --- a/src/error.c +++ b/src/error.c @@ -664,7 +664,7 @@ static akerr_ErrorContext AKERR_NOIGNORE *akerr_reserve_status_range_locked(int "must not overflow int)", count, first_status, owner == NULL ? "(null)" : owner, AKERR_MAX_STATUS_RANGE_OWNER_LENGTH); - last_status = first_status + count - 1; + last_status = first_status + (count - 1); for ( int i = 0; i < akerr_status_range_count; i++ ) { if ( first_status <= akerr_status_ranges[i].last &&