• src/xpdev/ini_file.c

    From Deuc¿@VERT to Git commit to main/sbbs/master on Fri Jan 24 16:12:05 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/3458846794cc2cb002c46b58
    Modified Files:
    src/xpdev/ini_file.c
    Log Message:
    fseek() after ftruncate()

    Ensure the stream is in a meaningful place.
    Fixes a bug, but one we're unlikely to have ever seen the way we use
    this.
    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Wed Dec 31 20:37:36 2025
    https://gitlab.synchro.net/main/sbbs/-/commit/b2381a0c2312d171a0b15e4c
    Modified Files:
    src/xpdev/ini_file.c
    Log Message:
    Fix issue with default connection settings on Windows

    Apparently, strnicmp() will return a non-zero value when comparing
    zero bytes.
    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Thu Jan 1 10:20:19 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/1297cc9a30762aa0488cf9b7
    Modified Files:
    src/xpdev/ini_file.c
    Log Message:
    Some more strnicmp() paranoia

    Avoid subtle platform differences in strnicmp()
    ---
    ■ 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 Tue Jan 13 22:16:37 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/340de5d8c9102eb27bc13ba6
    Modified Files:
    src/xpdev/ini_file.c
    Log Message:
    Fix apparent mem leaks in iniRemoveSections()

    Found during code review:
    - strListPop() doesn't free the popped item, needs to be freed
    - could return (on error) without freeing the list of sections
    ---
    ■ 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 Thu Feb 12 16:18:58 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/4b6d4ca95546878fd97be4e4
    Modified Files:
    src/xpdev/ini_file.c
    Log Message:
    Key names for string literals may contain C-escape sequences now

    This allows us to include control characters in the key names, so we can support this in text.ini [substr]:
    \1g: \1m
    ---
    ■ 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 Mon Feb 16 15:03:14 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/d4c6ff4dbf44128b3340d44c
    Modified Files:
    src/xpdev/ini_file.c
    Log Message:
    iniRemoveSection() now removes preceding blank lines

    Fix issue #991
    ---
    ■ 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 Mon Feb 16 16:26:06 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/4d125bc2c63daeb9119a1f98
    Modified Files:
    src/xpdev/ini_file.c
    Log Message:
    A cleaner implementation of the last commit.
    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Fri Mar 13 17:57:07 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/aef6cf1bab6a2a46ff1d5bfe
    Modified Files:
    src/xpdev/ini_file.c
    Log Message:
    For an empty file, return an empty list.

    Returning NULL causes SyncTERM to report a failure decrypting the
    list.

    Fixes ticket 225
    Actually found due to PhotonTERM triggering it for me when I tested
    that.
    ---
    ■ Synchronet ■ Vertrauen ■ Home of Synchronet ■ [vert/cvs/bbs].synchro.net
  • From Deuc¿@VERT to Git commit to main/sbbs/master on Fri Mar 13 18:39:29 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/a99386a10c2feb321a22af70
    Modified Files:
    src/xpdev/ini_file.c
    Log Message:
    Also fix the !CRYPTLIB version

    This is actually where PhotonTERM is broken.
    ---
    ■ 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/1aa979f77807a9dc45affa36
    Modified Files:
    src/xpdev/ini_file.c
    Log Message:
    Fix inverted include_dupes check in ini_get_section_list()

    The list-based variant used (include_dupes && ...) to skip duplicates,
    which is inverted � it filters when it should include and vice versa.
    The file-based variant ini_read_section_list() correctly uses
    (!include_dupes && ...). Bug introduced in 7046272ee4 when the
    include_dupes parameter was added.

    Co-Authored-By: Claude Opus 4.6 <[email protected]>
    ---
    � 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 Fri Apr 10 21:07:44 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/ce7715aba2e1b2ab4a68501f
    Modified Files:
    src/xpdev/ini_file.c
    Log Message:
    Fix possible NULL deref in iniHasInclude() when called with a nullptr

    (e.g. by echocfg when passed a directory on the command-line)
    ---
    ■ 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 Wed May 27 22:24:10 2026
    https://gitlab.synchro.net/main/sbbs/-/commit/e3a18a8eeac56fb1577f60dc
    Modified Files:
    src/xpdev/ini_file.c
    Log Message:
    xpdev: initialize p in iniParseSections() to silence /sdl C4703

    CI job 1507910 (windows-x86 [sbbs], commit 311ed074) failed with a hard
    C4703 ("potentially uninitialized local pointer variable 'p' used") at ini_file.c:1709 from sbbsexec.vcxproj, which uses the VS2017 toolset
    (MSVC 14.16) and /sdl (which elevates C4703 to error). The use is
    actually safe � the preceding `for (i = 0; list[i] != NULL; ++i)`
    loop runs at least once (list[0] != NULL was just checked) and sets
    p on every iteration � but the older toolset's per-TU data-flow can't
    see that proof. Whole-program optimization could; 311ed074 disabled
    WPO for Release|Win32, removing the cover.

    The faulty data-flow chain (early return + extended use of p outside
    the discovery loop) was introduced in 48edf261f0; initializing p at
    its declaration silences the warning and makes the invariant explicit
    at zero runtime cost.
    ---
    � Synchronet � Vertrauen � Home of Synchronet � [vert/cvs/bbs].synchro.net