- Apr 09, 2023
-
-
Rob Swindell authored
The sbbs_t::wordwrap[] buffer was 81 characters (80 printable characters, plus NUL terminator) and sbbs_t.getstr(), when used with the K_WRAP mode flag could potentially write more than 81 characters to this buffer (e.g. when using a wider than 80 column terminal and writing a message with the internal line editor which calls sbbs_t::getstr(... K_WRAP)) - would corrupt sbbs_t members after wordwrap[], which included pointers that would be freed in the sbbs_t destructor (~sbbs_t) and subsequently page/segfault as seen in issue #545. This change increases the wordwrap buffer to likely twice the same needed (maximum columns + NUL terminator) and adds wordwrap bounds checking to sbbs_t::getstr(). There were comments indicating crash sightings in the sbsb_t destructor going back to 2002, so this commit removes those comments. Thanks to Nelgin for providing the gdb dump details ('print *this') that was the clue needed to reach the root-cause determination. This fixes issue #545.
-
- Apr 08, 2023
-
-
Rob Swindell authored
-
Rob Swindell authored
Fixes issue #544
-
Rob Swindell authored
Need to use this for creating nightly sbbs_src.tgz file Also suppress the diff errors when the git_*.h files don't exist
-
- Apr 06, 2023
-
-
Rob Swindell authored
Removed backup_level option from save_cfg()
-
Rob Swindell authored
This seems kind of circular doesn't it? Anyway, add a new SCFG->System-> Advanced->Configuration Backup option to set the number of config (.ini) file backups to keep (default is 5). Eliminate the scfg -b option (used to manually over-ride the default backup level of 5). Fix for issue #542
-
- Apr 05, 2023
-
-
Rob Swindell authored
-
Rob Swindell authored
-
Rob Swindell authored
-
- Apr 04, 2023
-
-
Rob Swindell authored
When multiple servers are recycling at the same time, (e.g. due to saved change in SCFG) they'd each call sbbs_read_ini() with a shared global_startup struct, which in turn calls sbbs_free_ini(), which would free all the allocated network interface lists (including the global_startup one) using iniFreeStringList (just a wrapper for strListFree), but iniFreeStringList() does NOT modify (NULLify) the freed-pointer, so your second or third server that called sbbs_read_ini(), with the shared MainForm->global structure, would *again* free the same global interface list. This bug actually has always existed because get_ini_globals() freed the global interface list in the same way, except it *immediately* re-allocated a new one by calling iniGetStringList(), so the time window (opportunity) for this race condition to occur was much smaller. Truly, SBBSCTRL should use a mutex or other mechanism to protect the shared global_startup struct, but this is a first step to a full fix: sbbs_free_ini() should (and now does) nullify the freed network interface pointers by using strListFree() directly. I haven't been able to reproduce the crash upon recycle in SBBSCTRL after making this change.
-
Rob Swindell authored
-
- Apr 03, 2023
-
-
Rob Swindell authored
warning: format not a string literal and no format arguments Weird this warning is happening for me with GCC 12.2 (debug or release build)
-
- Apr 02, 2023
-
-
Rob Swindell authored
-
Rob Swindell authored
smtp_netmail_addr() - not currently used anywhere else, but may be someday. load/mailutil.js's fidoaddr_to_emailaddr() has this same logic (for FTN addrs at least and is now used by nntpservice.js). Also, always pass a buffer to smb_faddrtoa() from the mail server since it's multi-threaded and its unsafe to pass NULL (using a static local buffer).
-
Rob Swindell authored
smb_faddrtoa() uses a static local buffer if passed NULL and we shouldn't be doing that from multi-threaded callers.
-
Rob Swindell authored
Use the terminal server sem file check interval instead of node_sem_check (it was only used in the event thread) and node_stat_check was only used in the control panel, so just support a registry over-ride, but default to 5 sec. These settings were artifacts from SBBS v2 (WFC mode), and not really relevant or in the proper configuration place.
-
- Apr 01, 2023
-
-
Rob Swindell authored
-
Rob Swindell authored
CID 451182
-
Rob Swindell authored
This is an easily overlooked setting, let's make it easier
-
- Mar 31, 2023
-
-
Rob Swindell authored
Modem result codes. Oh, the memories...
-
- Mar 29, 2023
-
-
Rob Swindell authored
... rather than just return false. This will make debugging this type of issue much easier in the future. sendmail.js was allowing empty recipient_list array arguments and the MsgBase .status was 0 and .error just an emtpy string - unhelpful.
-
Rob Swindell authored
(like we do for Message Groups and File Libraries already)
-
Rob Swindell authored
-
Rob Swindell authored
-
Rob Swindell authored
-
- Mar 28, 2023
-
-
Rob Swindell authored
Move the Mail Server->SendMail* settings to their own sub-menu. Added popups while reading sbbs.ini
-
Rob Swindell authored
Fixed reversal of logic for FTP Server->Sysop File System Access option
-
Rob Swindell authored
And display an error message upon failure.
-
Rob Swindell authored
-
Rob Swindell authored
-
- Mar 27, 2023
-
-
Rob Swindell authored
-
Rob Swindell authored
-
Rob Swindell authored
-
Rob Swindell authored
-
- Mar 26, 2023
-
-
Rob Swindell authored
-
Rob Swindell authored
Still needs online help text.
-
Rob Swindell authored
This allows the [Global] section to be applied to each server section correctly Before this change, changing BindRetry in the global settings would result in the original global BindRetry value being added to each server/section of the sbbs.ini file.
-
Rob Swindell authored
Remove values, not keys, when setting a key with a global default. Use UInt16 functions for getting/setting TCP ports (this fixes an issue with the FTP PasvHigh port being set to -1 (instead of 65535). Use iniGetUInteger instead of iniGetShortInt for most other key values. First sbbs.ini save support in SCFG, still experimental.
-
- Mar 25, 2023
-
-
Rob Swindell authored
Allows SCFG to more easily display the most relevant .ini file using the UIFC timedisplay() callback.
-
Rob Swindell authored
-