• src/sbbs3/services.cpp

    From Rob Swindell (on Debian Linux)@1:103/705 to Git commit to main/sbbs/master on Wed May 6 19:41:53 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/306c753155781bdb5147f988
    Modified Files:
    src/sbbs3/services.cpp
    Log Message:
    services: suppress login_attempt_list lock false-positives (CIDs 631138, 631139, 639948, 643135)

    loginAttempts() and loginBanned() each call listLock+listUnlock
    internally on the link_list, leaving the mutex unlocked across the
    return. Coverity's inter-procedural lock tracking misses the matching
    unlock and reports:
    - LOCK: native_service_thread returning without unlocking
    - SLEEP: mswait while holding the lock (after loginAttempts)
    - LOCK: loginBanned re-locks while supposedly already locked

    None of these are real — the call sites never hold the mutex. Annotate
    the call sites with a SUPPRESS pointing at the invariant.

    CID 643138 (Y2K38_SAFETY for time32_t cast in connect-rate report) is deliberate — timestr() is a time32_t API by design — and is left for
    the project-wide Y2K38 architectural decision.

    Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>
    --- SBBSecho 3.37-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)