Synchronet merge requestshttps://gitlab.synchro.net/main/sbbs/-/merge_requests2022-11-06T17:59:15Zhttps://gitlab.synchro.net/main/sbbs/-/merge_requests/213checkStamp: prevent array size promotion/truncation2022-11-06T17:59:15ZanonymouspagecheckStamp: prevent array size promotion/truncationCalls to checkStamp are passing literals that are not 20 bytes
in size. This causes a "promotion" of the size in the context
of checkStamp. We can quiet these warnings by just marking the
parameter as a pointer.
Note: a safer approach w...Calls to checkStamp are passing literals that are not 20 bytes
in size. This causes a "promotion" of the size in the context
of checkStamp. We can quiet these warnings by just marking the
parameter as a pointer.
Note: a safer approach would be to pass a pointer and length.
This was detected by gcc 11.2.0:
ooii.c:1018:9: error: 'checkStamp' accessing 20 bytes in a region of size 11 [-Werror=stringop-overflow=]
...DeucеDeucеhttps://gitlab.synchro.net/main/sbbs/-/merge_requests/212syncterm: use shutdown() ahead of close() for rlogin/ssh2022-11-06T17:56:16Zanonymouspagesyncterm: use shutdown() ahead of close() for rlogin/sshUsing only close() on a socket has a few issues:
(1) poll is not required to wake on such events leading to hangs
if infinite timeouts are used.
This can be observed in macOS:
(a) syncterm -iC
(b) connect via teln...Using only close() on a socket has a few issues:
(1) poll is not required to wake on such events leading to hangs
if infinite timeouts are used.
This can be observed in macOS:
(a) syncterm -iC
(b) connect via telnet to some system
(c) use the menu to disconnect from the system
Note: socket must be idle to reproduce.
(2) If a blocked recv/send receives an error in response to a close
from another thread, the context of the socket has been lost: the
descriptor is free to be reallocated under the thread performing
I/O by the system. Any retry logic that may be written in response
to the error condition could lead to operations being performed
on a valid but incorrect resource.
(3) Processes that inherited the socket via fork() will still have
a valid descriptor to the socket. i.e., the socket does not
globally shutdown via a call to close(); however, shutdown()
acts on the connection by triggering a TCP FIN. This will lead
to the actual shutdown of the socket by the remote connection
as well.
Solution:
Use shutdown() ahead of close(). This will initiate a proper shutdown
sequence on the socket while leaving the descriptor open. poll() will
wake, and a subsequent read or write will yield the desired EOF/EPIPE.DeucеDeucеhttps://gitlab.synchro.net/main/sbbs/-/merge_requests/211ciolib_movetext: Do not leak fill buffer2022-11-06T17:35:39Zanonymouspageciolib_movetext: Do not leak fill bufferThis fixes a memory leak in ciolib_movetext() which accumulates
memory very quickly in scroll heavy ncurses environments. The
problem was originally noticed while running syncterm, and
confirmed with valgrind.
valgrind confirmation:
1...This fixes a memory leak in ciolib_movetext() which accumulates
memory very quickly in scroll heavy ncurses environments. The
problem was originally noticed while running syncterm, and
confirmed with valgrind.
valgrind confirmation:
17,310,720 bytes in 368 blocks are definitely lost in loss record 128 of 128
at 0x8C82899: malloc
by 0x16E273: ciolib_movetext (ciolib.c:563)
<<snip>>DeucеDeucеhttps://gitlab.synchro.net/main/sbbs/-/merge_requests/166LORD2: Catch global application errors2022-09-29T22:24:31ZEugene SoLORD2: Catch global application errorsAdd try-catch error handler to main application code to avoid crashing sbbs if a door error occurs.Add try-catch error handler to main application code to avoid crashing sbbs if a door error occurs.DeucеDeucеhttps://gitlab.synchro.net/main/sbbs/-/merge_requests/196DDMsgReader: Strict mode fixes2022-07-06T02:17:51ZEric OulashinDDMsgReader: Strict mode fixesDDMsgReader: A couple of strict mode fixes for variable assignments, which weren't caught during earlier testing.DDMsgReader: A couple of strict mode fixes for variable assignments, which weren't caught during earlier testing.Rob SwindellRob Swindellhttps://gitlab.synchro.net/main/sbbs/-/merge_requests/181DD Upload Processor: Better more werkens for teh Linux.2022-06-11T19:57:37ZEric OulashinDD Upload Processor: Better more werkens for teh Linux.DD Upload Processor v1.02: For Linux, after extracting an archive, sets file permissions too (in addition to directories which were being set already) so that all the files are readable, to make for a successful upload scan.DD Upload Processor v1.02: For Linux, after extracting an archive, sets file permissions too (in addition to directories which were being set already) so that all the files are readable, to make for a successful upload scan.Rob SwindellRob Swindellhttps://gitlab.synchro.net/main/sbbs/-/merge_requests/177Updated Digital Distortion Upload Processor so that the scanning works proper...2022-06-08T18:30:50ZEric OulashinUpdated Digital Distortion Upload Processor so that the scanning works properly in LinuxUpdated Digital Distortion Upload Processor so that the scanning works properly in LinuxUpdated Digital Distortion Upload Processor so that the scanning works properly in LinuxRob SwindellRob Swindellhttps://gitlab.synchro.net/main/sbbs/-/merge_requests/173SlyEdit 1.77: Fix for aborting when trying to access sub-board information wh...2022-05-31T19:14:59ZEric OulashinSlyEdit 1.77: Fix for aborting when trying to access sub-board information when there are no sub-boards (rare caes)SlyEdit 1.77: Fix for aborting when trying to access sub-board information in the rare case when there are no sub-boards (i.e., a brand new Synchronet setup).
I found this while testing a new Synchronet setup on Linux.SlyEdit 1.77: Fix for aborting when trying to access sub-board information in the rare case when there are no sub-boards (i.e., a brand new Synchronet setup).
I found this while testing a new Synchronet setup on Linux.Rob SwindellRob Swindellhttps://gitlab.synchro.net/main/sbbs/-/merge_requests/172SlyEdit 1.77: Fix for aborting when trying to access sub-board information wh...2022-05-28T05:49:43ZEric OulashinSlyEdit 1.77: Fix for aborting when trying to access sub-board information when there are no sub-boards configuredSlyEdit 1.77: Fix for aborting when trying to access sub-board information in the rare case when there are no sub-boards (i.e., a brand new Synchronet setup).
The issue was found when I was testing a new Linux Synchronet setup.SlyEdit 1.77: Fix for aborting when trying to access sub-board information in the rare case when there are no sub-boards (i.e., a brand new Synchronet setup).
The issue was found when I was testing a new Linux Synchronet setup.Rob SwindellRob Swindellhttps://gitlab.synchro.net/main/sbbs/-/merge_requests/170DD Archive Viewer: Now uses Synchronet's built-in archiver if possible. Also,...2022-05-15T00:53:14ZEric OulashinDD Archive Viewer: Now uses Synchronet's built-in archiver if possible. Also, renamed files to be in line with conventions.Digital Distortion Archive Viewer now uses Synchronet's built-in archiver if possible. Also, renamed the files according to conventions.Digital Distortion Archive Viewer now uses Synchronet's built-in archiver if possible. Also, renamed the files according to conventions.Rob SwindellRob Swindellhttps://gitlab.synchro.net/main/sbbs/-/merge_requests/129Better handling of ESC key input if mouse support is not enabled2021-12-14T03:27:32ZEric OulashinBetter handling of ESC key input if mouse support is not enabledIf mouseEnabled is default, now uses console.inkey()/getkey() directly rather than mouse_getkey(). This way, if mouse support is not enabled, inputting the ESC key can be handled better.If mouseEnabled is default, now uses console.inkey()/getkey() directly rather than mouse_getkey(). This way, if mouse support is not enabled, inputting the ESC key can be handled better.https://gitlab.synchro.net/main/sbbs/-/merge_requests/124Initial IRCd 1.9 changes2021-04-05T06:56:07ZGhost UserInitial IRCd 1.9 changesFirst cleanup of the code for IRCd 1.9First cleanup of the code for IRCd 1.9https://gitlab.synchro.net/main/sbbs/-/merge_requests/115Update Polyfills.2021-04-02T19:26:13ZMichael J. RyanUpdate Polyfills.- Update load/array.js to include flat and flatmap methods
- Add load/object.js to include various Object methods
- Added .vscode/settings.json to avoid mangling existing formatting- Update load/array.js to include flat and flatmap methods
- Add load/object.js to include various Object methods
- Added .vscode/settings.json to avoid mangling existing formattinghttps://gitlab.synchro.net/main/sbbs/-/merge_requests/117Implement support for event style programming2021-03-31T05:06:49ZDeucеImplement support for event style programmingIf js.keepGoing is set to true, a script will not terminate when it finishes. Instead, it will enter an event loop running installed callbacks when configured events occurs. Currently, events can be added with the following new methods...If js.keepGoing is set to true, a script will not terminate when it finishes. Instead, it will enter an event loop running installed callbacks when configured events occurs. Currently, events can be added with the following new methods:
* js.setInterval(callback_function, period_in_ms);
* js.setTimeout(callback_function, timeout_in_ms);
* SocketInstance.on('read' | 'write', callback_function);
* SocketInstance.once('read' | 'write', callback_function);
* SocketInstance.connect(host, port, callback_function);
Aside from Socket.connect(), these functions return a value that can be passed to a matching clear function:
* js.clearInterval(id);
* js.clearTimeout(id);
* SocketInstance.clearOn('read' | 'write', id);
* SocketInstance.clearOnce('read' | 'write', id);https://gitlab.synchro.net/main/sbbs/-/merge_requests/114Revert "Merge branch 'master' of https://gitlab.synchro.net/sbbs/sbbs"2021-02-28T02:36:02Zm jRevert "Merge branch 'master' of https://gitlab.synchro.net/sbbs/sbbs"This reverts commit 9d6b6c2f0e5efab1cf71ef6ebfd1f805126e3a2eThis reverts commit 9d6b6c2f0e5efab1cf71ef6ebfd1f805126e3a2ehttps://gitlab.synchro.net/main/sbbs/-/merge_requests/103WIP:Importcfg2021-02-07T18:45:04ZphareousWIP:Importcfgfor your reviewfor your reviewRob SwindellRob Swindellhttps://gitlab.synchro.net/main/sbbs/-/merge_requests/96WIP:fix error when user has no favorites2021-02-05T05:50:59ZphareousWIP:fix error when user has no favoritesRob SwindellRob Swindellhttps://gitlab.synchro.net/main/sbbs/-/merge_requests/91Make backspace work on typeahead, treat del and backspace as equivalent2021-02-03T03:49:48ZphareousMake backspace work on typeahead, treat del and backspace as equivalentechickenechickenhttps://gitlab.synchro.net/main/sbbs/-/merge_requests/84Update letsyncrypt.js2021-01-25T22:16:37ZMichael J. RyanUpdate letsyncrypt.jsMakes the hostname and email address used with registration configurable to something other than system.inet_addr. In case system has a different host name than the internet email domain.Makes the hostname and email address used with registration configurable to something other than system.inet_addr. In case system has a different host name than the internet email domain.DeucеDeucеhttps://gitlab.synchro.net/main/sbbs/-/merge_requests/81Draft: Resolve "When using SlyEdit CTRL-Space on a MAC sends a 0x0 NUL charac...2021-01-24T06:48:29ZEric OulashinDraft: Resolve "When using SlyEdit CTRL-Space on a MAC sends a 0x0 NUL character causing execution in the timeout logic"Closes #206Closes #206