• src/sbbs3/ars.c

    From Rob Swindell (on ChromeOS) to Git commit to main/sbbs/master on Sun Jun 11 14:33:40 2023
    https://gitlab.synchro.net/main/sbbs/-/commit/f9acb79dec8930f45cd3d2dc
    Modified Files:
    src/sbbs3/ars.c
    Log Message:
    Fix unaligned memory accesses as reported by ASan

    e.g. runtime error: store to misaligned address 0x7ffec33195e3 for type
    'short int', which requires 2 byte alignment

    These aren't a problem for x86, but could be a problem for some other CPU architectures that don't support unaligned access. I didn't use memcpy() to resolve this (though that would've worked) to make this change endian agnostic.
  • From Rob Swindell (on Windows 11)@rob@synchro.net to Git commit to main/sbbs/master on Sat Jan 11 16:11:34 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/f28907e3126cb76da58195b0
    Modified Files:
    src/sbbs3/ars.c
    Log Message:
    Fix the auto-keyword detection based on parameter type for USER, DIR, and SUB

    SUB and DIR have long had this bug, but I just noticed while playing with the new USER keyword capabilities (specifying user numbers and/or names).

    If you switched between numeric and alpha/string parameters, without restating the ARS keyword, the keyword would could end up wrong in the parsed byte array.
  • From Rob Swindell (on Windows 11)@rob@synchro.net to Git commit to main/sbbs/master on Tue Jan 13 22:16:37 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/d9bd8a2342902dfe36a1fcf4
    Modified Files:
    src/sbbs3/ars.c
    Log Message:
    arstr() shouldn't blow up if passed a NULL string

    Just some defensive programming - no known issue addressed by this change.
  • From Rob Swindell (on Windows 11)@rob@synchro.net to Git commit to main/sbbs/master on Fri Feb 13 16:35:37 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/4e2f5eeaf9c5c0caa9e5ab0d
    Modified Files:
    src/sbbs3/ars.c
    Log Message:
    Add the WIP keyword parsing back to arstr()

    ... removed in commit 8187ea673b86f52df45facbef63e13824b0b15ed

    Some (very) old Baja modules included checks for WIP support using ARS and without this keyword support, they would compiled with the interpretation of "WIP" as the "IP" ARS keyword and with no argument return true when evaluated basically falsely telling the script that the user's using a WIP terminal. Nobody is using a WIP terminal.