• src/sbbs3/js_bbs.cpp js_file.c js_filebase.c js_msgbase.c js_socket.c

    From Rob Swindell (on Windows 11)@VERT to Git commit to main/sbbs/master on Saturday, February 08, 2025 13:21:24
    https://gitlab.synchro.net/main/sbbs/-/commit/6ed4a05faf856cf762fd1014
    Modified Files:
    src/sbbs3/js_bbs.cpp js_file.c js_filebase.c js_msgbase.c js_socket.c Log Message:
    Native JS methods must return JS_FALSE for (Error) exceptions to be thrown

    I discovered the first case when FileBase.get_path() failed, but didn't (immediately) throw an exception. Reviewing the other instances of JS_RepoertError() calls found several that either reported a garbage (e.g. NULL) string value or returned JS_TRUE.

    The design pattern used a little in js_socket.c probably should be used more:

    if (JS_IsExceptionPending(cx))
    return JS_FALSE;
    return JS_TRUE;

    ... but that's more of a refactor than I had the stomach for right now.

    ---
    þ Synchronet þ Vertrauen þ Home of Synchronet þ [vert/cvs/bbs].synchro.net