• src/xpdev/genwrap.c

    From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Wed May 6 22:36:57 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/03b2d508318a01dc761a7073
    Modified Files:
    src/xpdev/genwrap.c
    Log Message:
    genwrap: cast strlcat to void in add_suffix (CID 640959)

    add_suffix appends a unit suffix to a duration string built by
    safe_snprintf into a fixed buffer; the strlcat truncation case is
    acceptable (the caller would just see a slightly shorter string).
    Make the discarded returns explicit.

    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 Linux)@VERT to Git commit to main/sbbs/master on Thu Sep 24 21:22:49 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/18ddb2e73bed00cece5f829a
    Modified Files:
    src/xpdev/genwrap.c
    Log Message:
    xp_popen(): don't reuse the output buffer after a failed realloc

    On Windows, xp_popen() grows its output buffer with realloc_or_free(),
    which frees the old buffer when realloc() fails. The failure branch broke
    out of the read loop without clearing the pointer, so the line-splitting
    loop that follows read freed memory and the free() at the end released
    it a second time.

    The pointer is now cleared, leaving the same state as a command that
    produced no output. The POSIX side reads straight into the string list
    and never reallocates, so it is unaffected.

    Co-Authored-By: Claude Opus 5.5 (1M context) <noreply@anthropic.com>

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