UltrafastSecp256k1/.cppcheck-suppressions
Vano Chkheidze 1519ff9605
fix: resolve 266 code scanning alerts (cppcheck + clang-tidy + CodeQL) (#65)
- Add .cppcheck-suppressions for objectIndex/passedByValue/containerOutOfBounds/
  arrayIndexOutOfBoundsCond/uninitvar false positives (111 alerts)
- Wire suppressions file into .github/workflows/cppcheck.yml
- Add const qualifiers where variables are never modified (misc-const-correctness)
- Initialize variables at declaration (cppcheck init-variables)
- Replace C-style casts with reinterpret_cast (cstyle-cast)
- Replace std::atoi with std::strtol (cert-err34-c)
- Check sscanf/snprintf return values (cert-err33-c, cert-err34-c)
- Add NOLINTNEXTLINE for false positives (BARRIER_OPAQUE, fe52_cmov,
  reserved identifiers, 2-digit hex parsing)
- Fix misplaced widening casts (bugprone-misplaced-widening-cast)
- Add default: break to switch statements
- Remove unused variables/imports, add (void) for unused bindings
- Fix unsigned >= 0 tautology (cpp/unsigned-comparison-zero)
- Add null guard before strlen (NonNullParamChecker)
- Replace localtime with localtime_s/localtime_r
- Replace fopen with POSIX open+fdopen for secure permissions

All 25 tests pass. No behavior changes.
2026-02-28 04:31:04 +04:00

28 lines
1.1 KiB
Plaintext

// Cppcheck suppressions for known false-positives
// Referenced by .github/workflows/cppcheck.yml via --suppressions-list
// sha512.hpp: cppcheck cannot track pointer bounds through function calls.
// update(&pad, 1) and compress(buf_) pass valid pointers to stack variables.
objectIndex:*sha512.hpp
// field.cpp: FieldElement is intentionally passed by value in Montgomery
// arithmetic for aliasing safety in crypto hot paths.
passedByValue:*field.cpp
// field.cpp: cppcheck cannot verify dynamic bounds in field arithmetic;
// all array accesses are within allocated fixed-size arrays.
containerOutOfBounds:*field.cpp
// context.hpp: loop index is bounded by sizeof(ctx.name) - 1.
arrayIndexOutOfBoundsCond:*context.hpp
// field_26.cpp: result objects are immediately filled by fe26_mul_inner /
// fe26_sqr_inner before any read. cppcheck cannot model output parameters.
uninitvar:*field_26.cpp
// field_asm.cpp: FieldElement out is immediately overwritten by memcpy.
uninitvar:*field_asm.cpp
// precompute.cpp: intentional pass-by-value for FieldElement.
passedByValue:*precompute.cpp