BBS:      TELESC.NET.BR
Assunto:  Use of rate limiter can cause sbbs exception/crash under very high loa
De:       Rob Swindell
Data:     Mon, 6 Apr 2026 18:09:43 -0700
-----------------------------------------------------------
open https://gitlab.synchro.net/main/sbbs/-/issues/1113

Apparently we do need to mutex-protect the unordered_map in the `rateLimiter` class:

NULL pointer deref exception occurred here:
```
*  	websrvr.dll!std::_Adjust_manually_vector_aligned(void * & _Ptr, unsigned int & _Bytes) Line 205	C++	Symbols loaded.
 	websrvr.dll!std::_Deallocate<8>(void * _Ptr, unsigned int _Bytes) Line 286	C++	Symbols loaded.
 	websrvr.dll!std::allocator<__int64 *>::deallocate(__int64 * * const _Ptr, const unsigned int _Count) Line 985	C++	Symbols loaded.
 	websrvr.dll!std::deque<__int64,std::allocator<__int64>>::_Growmap(unsigned int _Count) Line 1644	C++	Symbols loaded.
 	websrvr.dll!std::deque<__int64,std::allocator<__int64>>::_Emplace_back_internal<__int64 const &>(const __int64 & <_Vals_0>) Line 1145	C++	Symbols loaded.
 	websrvr.dll!std::deque<__int64,std::allocator<__int64>>::push_back(const __int64 & _Val) Line 1249	C++	Symbols loaded.
>	websrvr.dll!rateLimiter::allowRequest(const std::string & clientId) Line 51	C++	Symbols loaded.
 	websrvr.dll!get_req(http_session_t * session, char * request_line) Line 3542	C++	Symbols loaded.
 	websrvr.dll!http_session_thread(void * arg) Line 7072	C++	Symbols loaded.
 	websrvr.dll!thread_start(void * const parameter) Line 101	C++	Symbols loaded.
 	kernel32.dll!@BaseThreadInitThunk@12()	Unknown	Non-user code. Symbols loaded without source information.
 	ntdll.dll!___RtlUserThreadStart@8()	Unknown	Non-user code. Symbols loaded without source information.
 	ntdll.dll!__RtlUserThreadStart@8()	Unknown	Non-user code. Symbols loaded without source information.

```
n
---
  mSynchronetn  hgVertrauen n hHome of Synchronet n gh[vert/cvs/bbs].synchro.net

-----------------------------------------------------------
[Voltar]