https://gitlab.synchro.net/main/sbbs/-/commit/b8dfffeb335e4e4a37983331
Modified Files:
docs/v322_new.md exec/fingerservice.js
Log Message:
Fix Finger service errors on numeric and forwarded requests
fingerservice.js passed the client's request straight to new User()
after a bare truthiness test. A numeric request outside int32 range
threw an uncaught "can't convert usernum to an integer"; an in-range
but nonexistent number threw "Error -101 reading user number". The
if(u == null) guard added in 1ee5ce3f0c (2003-04-02) can never catch
either, since the User constructor throws rather than returning null.
Validate against system.lastuser instead, which also makes the
existing "!INVALID USER NUMBER" log message reachable.
Stripping "@hostname" from a forwarded request (RFC 1288 {Q2}) used
substr(0, at - 1), dropping the last character of the name, so
"finger sysopx@
vert@vert.synchro.net" answered with user "sysop" --
a truncated name can match a different account, not just fail to
match. Off-by-one present since 379b5d27d7 (2001-11-10).
Co-Authored-By: Claude Opus 5 (1M context) <
noreply@anthropic.com>
---
þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net