• src/sbbs3/zmodem.c

    From Rob Swindell (on Windows 11)@VERT to Git commit to main/sbbs/master on Thu Jan 2 17:40:12 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/57e0d22816044e34efcf7e0d
    Modified Files:
    src/sbbs3/zmodem.c
    Log Message:
    Resolve newly added MSVC warning

    warning C4244: 'return': conversion from 'uint64_t' to 'unsigned int',
    possible loss of data
    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Fri Jan 3 11:46:22 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/d2cd0a651384b4c6f9ccfd3a
    Modified Files:
    src/sbbs3/zmodem.c
    Log Message:
    Ok, so the real issue Coverity has is the tainting of nX.

    Have zmodem_recv_nibble() explicitly range-check all values, and
    handle negative values. If this remains an issue, it can be
    untainted with range checks on each nibble, but let's not go there
    to start with.
    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Sat Jan 4 00:52:27 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/35f2ec2f73a22d3b7702787a
    Modified Files:
    src/sbbs3/zmodem.c
    Log Message:
    So, Coverity knows that won't happen, so that just creates a new issue

    Try untainting it in recv_hex... if that doesn't work, I'll just
    have to ignore it I guess.
    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Sat Jan 4 01:51:54 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/8be9b414e85a30b6da2cdb06
    Modified Files:
    src/sbbs3/zmodem.c
    Log Message:
    Yep, Coverity knows those won't do anything.
    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Sat Jan 4 13:36:34 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/f5db57c486e22411d71e861c
    Modified Files:
    src/sbbs3/zmodem.c
    Log Message:
    Suppress Coverity overflow issue.

    This can't actually happen.
    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Sat Jan 4 16:19:54 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/430f50363dcd4db76e06906d
    Modified Files:
    src/sbbs3/zmodem.c
    Log Message:
    So, Coverity knows that won't happen, so that just creates a new issue

    Try untainting it in recv_hex... if that doesn't work, I'll just
    have to ignore it I guess.
    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Sat Jan 4 16:19:54 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/6ab3066724eee2426b2c2480
    Modified Files:
    src/sbbs3/zmodem.c
    Log Message:
    Yep, Coverity knows those won't do anything.
    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Sat Jan 4 16:19:54 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/02a684faf4f89b31d450d02c
    Modified Files:
    src/sbbs3/zmodem.c
    Log Message:
    Suppress Coverity overflow issue.

    This can't actually happen.
    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Windows 11)@VERT to Git commit to main/sbbs/master on Fri Mar 6 21:58:36 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/02f0ebb9bd66b1c1ad3873b5
    Modified Files:
    src/sbbs3/zmodem.c
    Log Message:
    Add some more log messages to zmodem_get_zfin()

    to try to root cause 'OO' transmission issue (observed with Chuck Forsberg's rz).
    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Windows 11)@VERT to Git commit to main/sbbs/master on Fri Mar 6 22:30:03 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/a3b7cff7fa45e4e5fb7a185f
    Modified Files:
    src/sbbs3/zmodem.c
    Log Message:
    Call zmodem_flush() after sending the 'OO' after a ZFIN

    Chuck's rz (readline) waits indefinitely for these two O's.
    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Deuc�@VERT to Git commit to main/sbbs/master on Sun Mar 15 16:01:53 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/87b7d946c0ab40a5a20343ee
    Modified Files:
    src/sbbs3/zmodem.c
    Log Message:
    Remove vestigial int32_t casts truncating file sizes in zmodem_recv_files()

    Three comparisons between l and bytes cast bytes to int32_t, silently truncating file sizes > 2GB. Both variables are int64_t � the casts
    were left over from the 887147a69c "64-bitify" conversion where
    long/ulong became int32_t/uint32_t before being later widened to
    int64_t.

    Co-Authored-By: Claude Opus 4.6 <[email protected]>
    ---
    � Synchronet � Vertrauen � Home of Synchronet � [vert/cvs/bbs].synchro.net
  • From Rob Swindell (on Windows 11)@VERT to Git commit to main/sbbs/master on Sun Mar 15 16:24:40 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/c787342dc9ae4fd3005d224e
    Modified Files:
    src/sbbs3/zmodem.c
    Log Message:
    Fix API violation in zmodem_recv_bin32_header()

    Introduced in commit 83b672364, Claude caught this:

    zmodem_recv_bin32_header() returns TRUE on error (zmodem.c:1200)
    When zmodem_rx() returns an error (c < 0) during CRC-32 header reception, the function returns TRUE (success) instead of FALSE. The subsequent CRC check will almost certainly catch this, but the function's contract is violated.
    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net