• src/sbbs3/userdat.c

    From Rob Swindell (on Windows 11)@VERT to Git commit to main/sbbs/master on Wednesday, December 17, 2025 15:49:56
    https://gitlab.synchro.net/main/sbbs/-/commit/2f7623fe054d6c2b9c1e41ec
    Modified Files:
    src/sbbs3/userdat.c
    Log Message:
    Do some error checking in logoutuserdat()

    (i.e. user.tab open/lock/read/write failures)

    I suspect this function has been failing on Vertrauen under heavy (Guest login/out) load, but there was no actual error reporting from this function which opens, locks, read and writes the user.tab file 4 times (!) for every user logout.

    Ideally:
    - this function would return more error details than simply success/failure
    - this function would only open/lock/read/write the user.tab file only once

    ---
    þ 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 Wednesday, December 17, 2025 19:09:19
    https://gitlab.synchro.net/main/sbbs/-/commit/5ccd9e8ccc6fd0158c7228b6
    Modified Files:
    src/sbbs3/userdat.c
    Log Message:
    Fix bug in subtract_cdt() handling free credit roll-under to regular credits

    Bug introduced in commit 8deac23222b3a3db (copy/paste/typo)

    Caught during manual code review.

    When a user has any amount of free credits, but the amount being subtracted
    was greater than their free credits available, the underflow was supposed to
    be deducted from their regular credits. Instead, the underflow was (attempted) to be deducted from their free credits, which were alreay zeroed.

    ---
    þ 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 Saturday, December 20, 2025 04:34:42
    https://gitlab.synchro.net/main/sbbs/-/commit/a12a964a5ffbf5ab30e0fd8d
    Modified Files:
    src/sbbs3/userdat.c
    Log Message:
    Better user name/alias validity checking check_name() and check_realname()

    - detect/reject strings with control characters
    - detect/reject strings with non-ASCII character
    (when configured to do so by the sysop)

    Since the newuser.cpp already disallows this illegal input for new user values this likely only really makes a difference for any JS code that uses system.check_name() or system.check_realname() which is probably none.

    ---
    þ 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 Saturday, December 20, 2025 04:34:42
    https://gitlab.synchro.net/main/sbbs/-/commit/93cefd0e8f0a54e2711b8ae8
    Modified Files:
    src/sbbs3/userdat.c
    Log Message:
    check_realname() now rejects 0xff char and names from name.can file

    ---
    þ 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 Saturday, January 03, 2026 04:45:04
    https://gitlab.synchro.net/main/sbbs/-/commit/d3a398d76a1a224c6254b7f5
    Modified Files:
    src/sbbs3/userdat.c
    Log Message:
    Fix the begin/end with white space checks in check_name and check_realname

    char is signed (usually)

    This was rejected names that ended in extended-ASCII chars (when allowed)

    ---
    þ 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 Tuesday, January 13, 2026 22:16:37
    https://gitlab.synchro.net/main/sbbs/-/commit/fe0ef584fb420831e37e4174
    Modified Files:
    src/sbbs3/userdat.c
    Log Message:
    Address new Coverity issue

    CID 640988: Null pointer dereferences (FORWARD_NULL)

    ---
    þ 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 Thursday, January 15, 2026 16:38:13
    https://gitlab.synchro.net/main/sbbs/-/commit/abf06be881e9b986937c72de
    Modified Files:
    src/sbbs3/userdat.c
    Log Message:
    Fix "executing xtrn" node_activity() for multiple-concurrent logons (Guests)

    The name of the external program was pulled from the user record which in this case would always be the last program executed by (any) Guest. Instead, use
    the (slightly more ambiguous) node.aux field for external program being executed by Guest users or upon any failure to read the user record.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net