• docs/v322_new.md exec/fingerservice.js

    From Rob Swindell (on Windows 11)@VERT to Git commit to main/sbbs/master on Sun Aug 9 07:19:18 2026
    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