• src/sbbs3/js_uifc.c

    From Rob Swindell (on Debian Linux)@VERT to Git commit to main/sbbs/master on Mon Feb 20 14:16:00 2023
    https://gitlab.synchro.net/main/sbbs/-/commit/2a2c6ed4ffdb1d31c5fbd8a2
    Modified Files:
    src/sbbs3/js_uifc.c
    Log Message:
    Fix insufficient 'mode' string length in init() method

    Limited to 6 chars, yet some values are as long as 12 chars.

    Also, eliminates this warning from RELEASE builds (only) using gcc version 12.2.0 (Debian 12.2.0-14):
    js_uifc.c: In function `js_uifc_init':
    sbbs.h:230:56: warning: writing 8 bytes into a region of size 7 [-Wstringop-overflow=]
    230 | (ret)[JSSTSpos]=(char)JSSTSstrval[JSSTSpos]; \
    | ~~~~~~~~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~
    sbbs.h:242:9: note: in expansion of macro `JSSTRING_TO_ASTRING'
    242 | JSSTRING_TO_ASTRING((cx), JSVTSstr, (ret), (maxsize), (lenptr)); \
    | ^~~~~~~~~~~~~~~~~~~
    js_uifc.c:609:17: note: in expansion of macro `JSVALUE_TO_ASTRING'
    609 | JSVALUE_TO_ASTRING(cx, argv[1], mode, 7, NULL);
    | ^~~~~~~~~~~~~~~~~~
    In file included from sbbs.h:255: /home/rswindell/sbbs/src/sbbs3/../xpdev/genwrap.h:77:20: note: destination object of size 7 allocated by `__builtin_alloca'
    77 | #define alloca(sz) __builtin_alloca(sz)
    | ^~~~~~~~~~~~~~~~~~~~
    sbbs.h:228:43: note: in expansion of macro `alloca'
    228 | if(((ret)=(char *)alloca((*JSSTSlenptr)+1))) { \
    | ^~~~~~
    sbbs.h:242:9: note: in expansion of macro `JSSTRING_TO_ASTRING'
    242 | JSSTRING_TO_ASTRING((cx), JSVTSstr, (ret), (maxsize), (lenptr)); \
    | ^~~~~~~~~~~~~~~~~~~
    js_uifc.c:609:17: note: in expansion of macro `JSVALUE_TO_ASTRING'
    609 | JSVALUE_TO_ASTRING(cx, argv[1], mode, 7, NULL);
    | ^~~~~~~~~~~~~~~~~~

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