https://gitlab.synchro.net/main/sbbs/-/commit/f4955c3b7bfc713eb70bdcd9
Modified Files:
src/doors/syncduke/Game/src/game.c
Log Message:
syncduke: don't hang on multi-GRP getch() prompt (Win32 door)
The Win32 findGRPToUse() interactively prompted (printf + getch()) when the
GRP directory held more than one duke3d*.grp. In a socket door that hangs the node: the prompt targets the host console, not the remote user, so nobody can answer it -- and getch() returning EOF (no console) spins the selection loop forever. That branch also assigned a char* (groupfile[kbdKey-'1']) into the
int grpID and then used it as an array index -> out-of-bounds read.
Take the first match deterministically (grpID = 0), logging a notice when more than one is found -- mirroring the *nix branch, which already returned the first match with no prompt. A specific GRP can still be isolated via [grp] dir.
Win32-only change (#ifdef _WIN32); the *nix path is unchanged. Verified: builds clean under MSVC.
Co-Authored-By: Claude Opus 4.8 <
noreply@anthropic.com>
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net