• src/xpdev/link_list.c

    From Deuc¿@VERT to Git commit to main/sbbs/master on Thu Feb 15 13:15:37 2024
    https://gitlab.synchro.net/main/sbbs/-/commit/44afa1b3c4231a1d291fcfa7
    Modified Files:
    src/xpdev/link_list.c
    Log Message:
    Don't hold a mutex while it's destroyed.

    Found by Coverity.
    If there's actually another thread using the list when the refcount
    hits zero, you're going to have a bad time regardless of the lock.

    Coverity has been pointing this out for a while, but we've been
    ignoring it as a false positive.
    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Wed Jan 8 22:08:38 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/f013ae6104eb224606c62d88
    Modified Files:
    src/xpdev/link_list.c
    Log Message:
    Suppress Coverity rantings about this "non-recursive" lock.

    The lock is recursive.
    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Thu Jan 9 08:33:55 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/ed2b520159f1df7f60a90423
    Modified Files:
    src/xpdev/link_list.c
    Log Message:
    Chase those suppressions
    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Sat Jan 11 01:36:13 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/29459be564eef4c45a9df3b6
    Modified Files:
    src/xpdev/link_list.c
    Log Message:
    Spell Coverity wright.
    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Sun Jan 12 10:24:55 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/de2c5af1c31d3a2adfa18c32
    Modified Files:
    src/xpdev/link_list.c
    Log Message:
    Coverity actually found legitimate issues in link_list.c

    They're all from accessing list values outside of a lock.
    Lock the list earlier to include these.

    Also, does this mean it knows they're recursive now?
    Let's find out!
    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Sun Jan 12 10:36:48 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/139d4f90180b220cc9f1b33d
    Modified Files:
    src/xpdev/link_list.c
    Log Message:
    NULL check needs to be outside the lock. :D

    Also, no, Coverity still doesn't know from recursive mutexes.
    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Windows 11)@VERT to Git commit to main/sbbs/master on Wed Mar 11 03:54:58 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/4aa8f644d5217556c33c60fa
    Modified Files:
    src/xpdev/link_list.c
    Log Message:
    MSFT Application Verifier complains the critical section is already initialized

    On Windows, we may not have been actually mutex-protecting some or all of our Linked Lists, or maybe all Linked Lists were sharing the same mutex (critsect) because the address of the "critical section object" (which we use as a mutex) *must* (apparently) be unique or it's just reinitialized for every new linked list that's created/initialized. Either way, it wasn't good.

    For now (at least), pthread_mutex_initializer_np() should not be used on Windows!
    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net