• src/sbbs3/js_system.cpp

    From Rob Swindell (on Debian L@VERT to Git commit to main/sbbs/m on Wed May 6 22:36:00 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/bd294a6c23647cbcf9799cb1
    Modified Files:
    src/sbbs3/js_system.cpp
    Log Message:
    js_system: use UINT_TO_JSVAL for node.extaux to avoid signed overflow (CID 530515)

    node.extaux is uint32_t; the cast to (int) for INT_TO_JSVAL could yield
    a negative value for extaux > INT_MAX. Use UINT_TO_JSVAL like the rest
    of the codebase already does for this field (e.g., js_system.cpp:2717).

    Co-Authored-By: Claude Opus 4.7 <noreply@anthropic.com>

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Debian L@VERT to Git commit to main/sbbs/m on Thu Jul 2 00:55:00 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/657bb4ee6dd07aa16be5b260
    Modified Files:
    src/sbbs3/js_system.cpp
    Log Message:
    Fix system.filter_ip() ignoring a duration argument after the filename

    js_filter_ip()'s argument parser stopped scanning as soon as the filename
    (6th string) was assigned (loop guarded by `fname == NULL`), so a numeric duration passed after the filename -- the order the JSDOCSTR documents, "[protocol, reason, host, ip, username, filename] [duration-in-seconds]" --
    was never read. duration stayed 0, producing a filter entry with no
    expiration (no e=), i.e. a permanent block, when a timed one was requested.

    Scan all arguments for the (optional) numeric duration regardless of
    position, and ignore any extra string arguments (freeing them) rather than overwriting the filename. The documented argument order now works; verified with a fresh build via jsexec (duration after filename now yields e=).

    Co-Authored-By: Claude Opus 4.8 <noreply@anthropic.com>

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