• src/xpdev/genwrap.c

    From Rob Swindell (on Debian Linux)@1:103/705 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>
    --- SBBSecho 3.37-Linux
    * Origin: Vertrauen - [vert/cvs/bbs].synchro.net (1:103/705)