• src/sbbs3/userdat.c

    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/6efdf3890e49237f9e099f01
    Modified Files:
    src/sbbs3/userdat.c
    Log Message:
    userdat: suppress LOCK false-positives in login* family (CIDs 631133, 631140, 631141, 631146)

    The link_list_t mutex is explicitly documented as recursive
    (link_list.h:99) — internal listCountNodes/listFreeNodes/listRemoveNode/ listPushNodeData calls re-acquire it safely. Coverity doesn't trace the recursive flag, so it flags every "outer-locked listX call" as a
    potential deadlock. Annotate each call site with a SUPPRESS plus a
    pointer to the documented invariant.

    CID 631145 (SLEEP-while-locked in loginBanned) was already mitigated
    in current source: listUnlock is called before the trashcan() call.

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