Skip to content
Snippets Groups Projects
  1. Feb 22, 2023
    • Rob Swindell's avatar
      Remove old CVS tags, increment revision/version numbers where used · a54bb6af
      Rob Swindell authored
      The details (dates, author, revision numbers) are often stale and
      misleading, so start removing them. Where the Revision tag was used
      for a version/revision, just bump it by one and use a string constant
      instead (Git doesn't provide any similar facility for auto-incrementing
      revision numbers).
      
      More remains. Perhaps a commit hook to alert me when committing that I should
      clean up as I go rather than try to do this in bulk. <shrug>
      a54bb6af
    • Rob Swindell's avatar
      Fix corrupted RFC822 msg headers when a header field was > 1024 chars · b77a0ba6
      Rob Swindell authored
      When sending an SMB message header via SMTP or POP3, some header fields (lines) could potentially be longer than 1024 and yet sockprintf() was limited to sending 1024 bytes (actually 1022 plus CRLF). This could result in some messages not being sent correctly: header field truncated, not CRLR-terminated, and notably resulting in MIME message contents not being decoded properly in a message viewer/reader. Example (Content-Type is part of the previous header field/line):
      x-ms-exchange-antispam-messagedata-0:
       =?us-ascii?Q?cm9T1Q9G65VC/lKTTqhODKhy5lHT2y6WWMb/WyvJ+EeGEwYmY7ILhzE3yfNM?=
       =?us-ascii?Q?KeFWN9T/PqHBya1plKf/sHgaw0iRmI7Hq+u9Dp4bG8OqdniKQlK+Aa27oXMd?=
       =?us-ascii?Q?Hly6OEYaSu7jbhGGY89LF0gyRVqquqxkaMfpKvG+h4cQnnu4Tl8YAKeE39a2?=
       =?us-ascii?Q?lHW3372ulmb9jvvZU72J2RtZYkuoIr+Wsqhfyuj39wTZ/+C4qKCsYrmTxrki?=
       =?us-ascii?Q?fBZ4gMPzWkrcWAr7zPcXBg8bphJJB8VJFUjQyksA3EG4dtH8+TZeEcNNBmHf?=
       =?us-ascii?Q?oCGnV9wHr9HszzrSkkZ2GGyh3QZLHAVDNe7wDXSy7HJttZugf9kNqKGeaYQL?=
       =?us-ascii?Q?TpljH1aHPe7MiSP9Dmp/xHQ/DWQOZDx5guNS+iMciMt5p5ad+SkQye0hWRhd?=
       =?us-ascii?Q?usHvpllclzIee6lxJ0VSPAzHGlAOhtOolrHdDB2ODjvkEzU7L2Fj2f5x7p9q?=
       =?us-ascii?Q?9d6sUgSz7vZVx8yyR3KPq3jIX0QUnl0xr2Mix9xcmMNcg0yFLPcznqBdLVa8?=
       =?us-ascii?Q?IC7j0+8oy4BjYxr8Z3elxMC2JKq13gPYgR95cwm6hMDiZbMB4EW/J1uJhD/I?=
       =?us-ascii?Q?RIIqTZ+Ywt8nKOfXj6/a9Aauf0wN71QKKA+in7KY9oksIhkUGvWOrtJwkVDL?=
       =?us-ascii?Q?Q2UFrBBJyQHJgumj5Y+bG8FDk/55IfyV9XYEcsdLL4bCF+HX4QPHZCw4P+li?=
       =?us-ascii?Q?bRvN+UxOO8hgXVkgB1q8mNJ62yQuaj0AContent-Type: multipart/alternative;
      	boundary="_000_SN6PR07MB454477F4C32C66D48BA0B02187A09SN6PR07MB4544namp_"
      
      Solved by using asprintf() instead of snprintf() for dynamic string formatting and allocation in one go. Using realloc() to expand the buffer for the appended/required CRLF.
      b77a0ba6
  2. Feb 21, 2023
  3. Feb 20, 2023
    • Rob Swindell's avatar
      All loadable modules can now be configured as full command-lines · add79f03
      Rob Swindell authored
      Previously, many/most loadable modules were limited to just 8 chars,
      so while technically you could include a command-line option with a
      very short module name, now all modules can be configured with full
      (up to 63 char) command-lines.
      add79f03
    • Rob Swindell's avatar
      Fix warning about signed/unsigned compare · 3cca779f
      Rob Swindell authored
      3cca779f
    • Rob Swindell's avatar
      Fix (false pos?) warnings in use of JSVALUE_TO_ASTRING only in RELEASE builds · 90dc709d
      Rob Swindell authored
      using gcc version 12.2.0 (Debian 12.2.0-14), e.g.
      
      js_console.cpp: In function ‘JSBool js_handle_ctrlkey(JSContext*, uintN, jsval*)’:
      sbbs.h:230:56: warning: writing 8 bytes into a region of size 2 [-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_console.cpp:670:17: note: in expansion of macro ‘JSVALUE_TO_ASTRING’
        670 |                 JSVALUE_TO_ASTRING(cx, argv[0], keystr, 2, NULL);
            |                 ^~~~~~~~~~~~~~~~~~
      In file included from sbbs.h:255:
      /home/rswindell/sbbs/src/sbbs3/../xpdev/genwrap.h:77:36: note: destination object of size 2 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_console.cpp:670:17: note: in expansion of macro ‘JSVALUE_TO_ASTRING’
        670 |                 JSVALUE_TO_ASTRING(cx, argv[0], keystr, 2, NULL);
            |                 ^~~~~~~~~~~~~~~~~~
      sbbs.h:230:56: warning: writing 1 byte into a region of size 0 [-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_console.cpp:670:17: note: in expansion of macro ‘JSVALUE_TO_ASTRING’
        670 |                 JSVALUE_TO_ASTRING(cx, argv[0], keystr, 2, NULL);
            |                 ^~~~~~~~~~~~~~~~~~
      /home/rswindell/sbbs/src/sbbs3/../xpdev/genwrap.h:77:36: note: at offset 2 into destination object of size 2 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_console.cpp:670:17: note: in expansion of macro ‘JSVALUE_TO_ASTRING’
        670 |                 JSVALUE_TO_ASTRING(cx, argv[0], keystr, 2, NULL);
            |                 ^~~~~~~~~~~~~~~~~~
      /home/rswindell/sbbs/src/sbbs3/../xpdev/genwrap.h:77:36: note: at offset 2 into destination object of size 2 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_console.cpp:670:17: note: in expansion of macro ‘JSVALUE_TO_ASTRING’
        670 |                 JSVALUE_TO_ASTRING(cx, argv[0], keystr, 2, NULL);
            |                 ^~~~~~~~~~~~~~~~~~
      /home/rswindell/sbbs/src/sbbs3/../xpdev/genwrap.h:77:36: note: at offset 2 into destination object of size [1, 2] 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_console.cpp:670:17: note: in expansion of macro ‘JSVALUE_TO_ASTRING’
        670 |                 JSVALUE_TO_ASTRING(cx, argv[0], keystr, 2, NULL);
            |                 ^~~~~~~~~~~~~~~~~~
      sbbs.h:230:56: warning: writing 1 byte into a region of size 0 [-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)); \
            |         ^~~~~~~~~~~~~~~~~~~
      90dc709d
    • Rob Swindell's avatar
      Fix insufficient 'mode' string length in init() method · 440bc585
      Rob Swindell authored
      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);
            |                 ^~~~~~~~~~~~~~~~~~
      440bc585
    • Rob Swindell's avatar
      Add an 'enabled' property for QWKnet hubs, defaults to true, part 2 · 51d4a1af
      Rob Swindell authored
      Missing part of yesterday's commit, whoops
      51d4a1af
    • Rob Swindell's avatar
      Add an 'enabled' property for QWKnet hubs, defaults to true · 4656c07c
      Rob Swindell authored
      Move the pack and unpack commands to an "Advanced" sub-menu since they
      are completely optional now.
      
      Set QWKhub 'VERT' to disabled by default in a new install.
      
      Fixes issue #506
      4656c07c
    • Rob Swindell's avatar
      Resolve GCC warning · d20d7fd0
      Rob Swindell authored
      warning: passing argument 1 of ‘ra’ discards ‘const’ qualifier from
      pointer target type
      d20d7fd0
    • Rob Swindell's avatar
      7d7f6d48
  4. Feb 19, 2023
Loading