• src/sbbs3/userdat.c

    From Rob Swindell (on Windows 11)@1:103/705 to Git commit to main/sbbs/master on Wed Dec 17 15:49:56 2025
    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 --- SBBSecho 3.33-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell (on Windows 11)@1:103/705 to Git commit to main/sbbs/master on Wed Dec 17 19:09:19 2025
    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.
    --- SBBSecho 3.33-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell (on Windows 11)@1:103/705 to Git commit to main/sbbs/master on Sat Dec 20 04:34:42 2025
    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.
    --- SBBSecho 3.33-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)
  • From Rob Swindell (on Windows 11)@1:103/705 to Git commit to main/sbbs/master on Sat Dec 20 04:34:42 2025
    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
    --- SBBSecho 3.33-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)