https://gitlab.synchro.net/main/sbbs/-/commit/75cc9b15e717d6cf77dc90b0
Modified Files:
src/syncterm/bbslist.c
Log Message:
Fix stack buffer overflows in bbslist.c build_edit_list()
The opt[][69] array has 69-byte elements, but several sprintf() calls
could write past that:
- "Address %s" with item->addr (LIST_ADDR_MAX=64, +18 = 83)
- "Phone Number %s", "Device Name %s", etc. (same field)
- "GHost Program %s" with item->password (MAX_PASSWD_LEN=128, +18 = 147)
- "BBS Username %s" with item->password (same)
- "Font %s" with item->font (80 bytes, +18 = 98)
Changed these to snprintf(opt[i++], sizeof(opt[0]), ...) to truncate
instead of overflowing. Other sprintf() calls in the same function
already used printf_trunc() or format short bounded values (Yes/No,
small ints, "********") and are not affected.
Co-Authored-By: Claude Opus 4.6 <
noreply@anthropic.com>
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net