Skip to content

Lots of new compiler warnings

gcc version 11.4.0 (Ubuntu 11.4.0-1ubuntu1~22.04)

Building sbbs with setcap symlinks gtkutils
1c1
< #define GIT_HASH "58638eceb"
---
> #define GIT_HASH "492a8506b"
make -C /home/bbs/sbbs-git/src/sbbs3/../../3rdp/build jslib
make[1]: Entering directory '/home/bbs/sbbs-git/3rdp/build'
make[1]: Nothing to be done for 'jslib'.
make[1]: Leaving directory '/home/bbs/sbbs-git/3rdp/build'
make -C /home/bbs/sbbs-git/src/sbbs3/../smblib lib
make[1]: Entering directory '/home/bbs/sbbs-git/src/smblib'
make[1]: Nothing to be done for 'lib'.
make[1]: Leaving directory '/home/bbs/sbbs-git/src/smblib'
make -C /home/bbs/sbbs-git/src/sbbs3/../xpdev mtlib
make[1]: Entering directory '/home/bbs/sbbs-git/src/xpdev'
make[1]: Nothing to be done for 'mtlib'.
make[1]: Leaving directory '/home/bbs/sbbs-git/src/xpdev'
make -C /home/bbs/sbbs-git/src/sbbs3/../../3rdp/build cryptlib
make[1]: Entering directory '/home/bbs/sbbs-git/3rdp/build'
make[1]: Nothing to be done for 'cryptlib'.
make[1]: Leaving directory '/home/bbs/sbbs-git/3rdp/build'
Compiling ansiterm.cpp
Compiling answer.cpp
Compiling atcodes.cpp
Compiling bat_xfer.cpp
Compiling bulkmail.cpp
Compiling chat.cpp
In file included from ../comio/comio.h:38,
                 from sbbs.h:93,
                 from chat.cpp:22:
chat.cpp: In member function ‘void sbbs_t::nodemsg()’:
chat.cpp:1367:57: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size 252 [-Wformat-truncation=]
 1367 |                                         SAFEPRINTF2(str,"%4s%s\r\n",nulstr,line);
      |                                                         ^~~~~~~~~~~        ~~~~
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:452:82: note: in definition of macro ‘SAFEPRINTF2’
  452 | #define SAFEPRINTF2(dst,fmt,a1,a2)                      snprintf(dst,sizeof(dst),fmt,a1,a2), TERMINATE(dst)
      |                                                                                  ^~~
chat.cpp:1367:61: note: format string is defined here
 1367 |                                         SAFEPRINTF2(str,"%4s%s\r\n",nulstr,line);
      |                                                             ^~
In file included from ../comio/comio.h:38,
                 from sbbs.h:93,
                 from chat.cpp:22:
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:452:65: note: ‘snprintf’ output 7 or more bytes (assuming 262) into a destination of size 256
  452 | #define SAFEPRINTF2(dst,fmt,a1,a2)                      snprintf(dst,sizeof(dst),fmt,a1,a2), TERMINATE(dst)
      |                                                         ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
chat.cpp:1367:41: note: in expansion of macro ‘SAFEPRINTF2’
 1367 |                                         SAFEPRINTF2(str,"%4s%s\r\n",nulstr,line);
      |                                         ^~~~~~~~~~~
Compiling chk_ar.cpp
Compiling con_hi.cpp
In file included from ../comio/comio.h:38,
                 from sbbs.h:93,
                 from con_hi.cpp:22:
con_hi.cpp: In member function ‘bool sbbs_t::chksyspass(const char*)’:
con_hi.cpp:165:42: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 197 and 226 [-Wformat-truncation=]
  165 |                         SAFEPRINTF3(str2,"%s #%u System password attempt: '%s'"
      |                                          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  166 |                                 ,useron.alias,useron.number,str);
      |                                                             ~~~
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:453:74: note: in definition of macro ‘SAFEPRINTF3’
  453 | #define SAFEPRINTF3(dst,fmt,a1,a2,a3)           snprintf(dst,sizeof(dst),fmt,a1,a2,a3), TERMINATE(dst)
      |                                                                          ^~~
con_hi.cpp:165:76: note: format string is defined here
  165 |                         SAFEPRINTF3(str2,"%s #%u System password attempt: '%s'"
      |                                                                            ^~
In file included from ../comio/comio.h:38,
                 from sbbs.h:93,
                 from con_hi.cpp:22:
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:453:57: note: ‘snprintf’ output between 32 and 316 bytes into a destination of size 256
  453 | #define SAFEPRINTF3(dst,fmt,a1,a2,a3)           snprintf(dst,sizeof(dst),fmt,a1,a2,a3), TERMINATE(dst)
      |                                                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
con_hi.cpp:165:25: note: in expansion of macro ‘SAFEPRINTF3’
  165 |                         SAFEPRINTF3(str2,"%s #%u System password attempt: '%s'"
      |                         ^~~~~~~~~~~
Compiling con_out.cpp
Compiling data.cpp
Compiling data_ovl.cpp
Compiling download.cpp
Compiling email.cpp
Compiling exec.cpp
In file included from ../comio/comio.h:38,
                 from sbbs.h:93,
                 from exec.cpp:22:
exec.cpp: In member function ‘int sbbs_t::exec_bin(const char*, csi_t*, const char*)’:
exec.cpp:763:33: warning: ‘.js’ directive output may be truncated writing 3 bytes into a region of size between 1 and 4097 [-Wformat-truncation=]
  763 |                 SAFEPRINTF2(str,"%s%s.js", startup_dir, mod);
      |                                 ^~~~~~~~~
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:452:82: note: in definition of macro ‘SAFEPRINTF2’
  452 | #define SAFEPRINTF2(dst,fmt,a1,a2)                      snprintf(dst,sizeof(dst),fmt,a1,a2), TERMINATE(dst)
      |                                                                                  ^~~
exec.cpp:763:38: note: format string is defined here
  763 |                 SAFEPRINTF2(str,"%s%s.js", startup_dir, mod);
      |                                      ^~~
In file included from ../comio/comio.h:38,
                 from sbbs.h:93,
                 from exec.cpp:22:
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:452:65: note: ‘snprintf’ output 4 or more bytes (assuming 4100) into a destination of size 4097
  452 | #define SAFEPRINTF2(dst,fmt,a1,a2)                      snprintf(dst,sizeof(dst),fmt,a1,a2), TERMINATE(dst)
      |                                                         ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
exec.cpp:763:17: note: in expansion of macro ‘SAFEPRINTF2’
  763 |                 SAFEPRINTF2(str,"%s%s.js", startup_dir, mod);
      |                 ^~~~~~~~~~~
exec.cpp:768:33: warning: ‘%s’ directive output may be truncated writing up to 4096 bytes into a region of size between 3997 and 4097 [-Wformat-truncation=]
  768 |                 SAFEPRINTF2(str,"%s%s.js",cfg.mods_dir,mod);
      |                                 ^~~~~~~~~              ~~~
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:452:82: note: in definition of macro ‘SAFEPRINTF2’
  452 | #define SAFEPRINTF2(dst,fmt,a1,a2)                      snprintf(dst,sizeof(dst),fmt,a1,a2), TERMINATE(dst)
      |                                                                                  ^~~
exec.cpp:768:36: note: format string is defined here
  768 |                 SAFEPRINTF2(str,"%s%s.js",cfg.mods_dir,mod);
      |                                    ^~
In file included from ../comio/comio.h:38,
                 from sbbs.h:93,
                 from exec.cpp:22:
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:452:65: note: ‘snprintf’ output between 4 and 4200 bytes into a destination of size 4097
  452 | #define SAFEPRINTF2(dst,fmt,a1,a2)                      snprintf(dst,sizeof(dst),fmt,a1,a2), TERMINATE(dst)
      |                                                         ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
exec.cpp:768:17: note: in expansion of macro ‘SAFEPRINTF2’
  768 |                 SAFEPRINTF2(str,"%s%s.js",cfg.mods_dir,mod);
      |                 ^~~~~~~~~~~
exec.cpp:778:25: warning: ‘%s’ directive output may be truncated writing up to 4096 bytes into a region of size between 3997 and 4097 [-Wformat-truncation=]
  778 |         SAFEPRINTF2(str,"%s%s",cfg.mods_dir,modname);
      |                         ^~~~~~              ~~~~~~~
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:452:82: note: in definition of macro ‘SAFEPRINTF2’
  452 | #define SAFEPRINTF2(dst,fmt,a1,a2)                      snprintf(dst,sizeof(dst),fmt,a1,a2), TERMINATE(dst)
      |                                                                                  ^~~
exec.cpp:778:28: note: format string is defined here
  778 |         SAFEPRINTF2(str,"%s%s",cfg.mods_dir,modname);
      |                            ^~
In file included from ../comio/comio.h:38,
                 from sbbs.h:93,
                 from exec.cpp:22:
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:452:65: note: ‘snprintf’ output between 1 and 4197 bytes into a destination of size 4097
  452 | #define SAFEPRINTF2(dst,fmt,a1,a2)                      snprintf(dst,sizeof(dst),fmt,a1,a2), TERMINATE(dst)
      |                                                         ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
exec.cpp:778:9: note: in expansion of macro ‘SAFEPRINTF2’
  778 |         SAFEPRINTF2(str,"%s%s",cfg.mods_dir,modname);
      |         ^~~~~~~~~~~
exec.cpp:782:33: warning: ‘%s’ directive output may be truncated writing up to 4096 bytes into a region of size between 3997 and 4097 [-Wformat-truncation=]
  782 |                 SAFEPRINTF2(str,"%s%s.js",cfg.exec_dir,mod);
      |                                 ^~~~~~~~~              ~~~
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:452:82: note: in definition of macro ‘SAFEPRINTF2’
  452 | #define SAFEPRINTF2(dst,fmt,a1,a2)                      snprintf(dst,sizeof(dst),fmt,a1,a2), TERMINATE(dst)
      |                                                                                  ^~~
exec.cpp:782:36: note: format string is defined here
  782 |                 SAFEPRINTF2(str,"%s%s.js",cfg.exec_dir,mod);
      |                                    ^~
In file included from ../comio/comio.h:38,
                 from sbbs.h:93,
                 from exec.cpp:22:
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:452:65: note: ‘snprintf’ output between 4 and 4200 bytes into a destination of size 4097
  452 | #define SAFEPRINTF2(dst,fmt,a1,a2)                      snprintf(dst,sizeof(dst),fmt,a1,a2), TERMINATE(dst)
      |                                                         ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
exec.cpp:782:17: note: in expansion of macro ‘SAFEPRINTF2’
  782 |                 SAFEPRINTF2(str,"%s%s.js",cfg.exec_dir,mod);
      |                 ^~~~~~~~~~~
exec.cpp:787:33: warning: ‘%s’ directive output may be truncated writing up to 4096 bytes into a region of size between 3997 and 4097 [-Wformat-truncation=]
  787 |                 SAFEPRINTF2(str,"%s%s",cfg.exec_dir,modname);
      |                                 ^~~~~~              ~~~~~~~
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:452:82: note: in definition of macro ‘SAFEPRINTF2’
  452 | #define SAFEPRINTF2(dst,fmt,a1,a2)                      snprintf(dst,sizeof(dst),fmt,a1,a2), TERMINATE(dst)
      |                                                                                  ^~~
exec.cpp:787:36: note: format string is defined here
  787 |                 SAFEPRINTF2(str,"%s%s",cfg.exec_dir,modname);
      |                                    ^~
In file included from ../comio/comio.h:38,
                 from sbbs.h:93,
                 from exec.cpp:22:
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:452:65: note: ‘snprintf’ output between 1 and 4197 bytes into a destination of size 4097
  452 | #define SAFEPRINTF2(dst,fmt,a1,a2)                      snprintf(dst,sizeof(dst),fmt,a1,a2), TERMINATE(dst)
      |                                                         ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
exec.cpp:787:17: note: in expansion of macro ‘SAFEPRINTF2’
  787 |                 SAFEPRINTF2(str,"%s%s",cfg.exec_dir,modname);
      |                 ^~~~~~~~~~~
Compiling execfile.cpp
Compiling execfunc.cpp
Compiling execmisc.cpp
Compiling execmsg.cpp
Compiling execnet.cpp
Compiling fido.cpp
In file included from ../comio/comio.h:38,
                 from sbbs.h:93,
                 from fido.cpp:24:
fido.cpp: In member function ‘bool sbbs_t::lookup_netuser(char*)’:
fido.cpp:49:31: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size 116 [-Wformat-truncation=]
   49 |                 SAFEPRINTF2(q,"Do you mean %s @%s",str,str+27);
      |                               ^~~~~~~~~~~~~~~~~~~~ ~~~
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:452:82: note: in definition of macro ‘SAFEPRINTF2’
  452 | #define SAFEPRINTF2(dst,fmt,a1,a2)                      snprintf(dst,sizeof(dst),fmt,a1,a2), TERMINATE(dst)
      |                                                                                  ^~~
fido.cpp:49:44: note: format string is defined here
   49 |                 SAFEPRINTF2(q,"Do you mean %s @%s",str,str+27);
      |                                            ^~
In file included from ../comio/comio.h:38,
                 from sbbs.h:93,
                 from fido.cpp:24:
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:452:65: note: ‘snprintf’ output 15 or more bytes (assuming 270) into a destination of size 128
  452 | #define SAFEPRINTF2(dst,fmt,a1,a2)                      snprintf(dst,sizeof(dst),fmt,a1,a2), TERMINATE(dst)
      |                                                         ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
fido.cpp:49:17: note: in expansion of macro ‘SAFEPRINTF2’
   49 |                 SAFEPRINTF2(q,"Do you mean %s @%s",str,str+27);
      |                 ^~~~~~~~~~~
Compiling file.cpp
Compiling getkey.cpp
Compiling getmsg.cpp
In file included from ../comio/comio.h:38,
                 from sbbs.h:93,
                 from getmsg.cpp:26:
getmsg.cpp: In member function ‘int sbbs_t::loadmsg(smbmsg_t*, uint)’:
getmsg.cpp:68:33: warning: ‘%s’ directive output may be truncated writing up to 127 bytes into a region of size between 94 and 114 [-Wformat-truncation=]
   68 |                 SAFEPRINTF4(str,"(%06" PRIX32 ") #%" PRIu32 "/%u %s",msg->idx.offset,msg->idx.number
      |                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:454:74: note: in definition of macro ‘SAFEPRINTF4’
  454 | #define SAFEPRINTF4(dst,fmt,a1,a2,a3,a4)        snprintf(dst,sizeof(dst),fmt,a1,a2,a3,a4), TERMINATE(dst)
      |                                                                          ^~~
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:454:57: note: ‘snprintf’ output between 15 and 162 bytes into a destination of size 128
  454 | #define SAFEPRINTF4(dst,fmt,a1,a2,a3,a4)        snprintf(dst,sizeof(dst),fmt,a1,a2,a3,a4), TERMINATE(dst)
      |                                                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
getmsg.cpp:68:17: note: in expansion of macro ‘SAFEPRINTF4’
   68 |                 SAFEPRINTF4(str,"(%06" PRIX32 ") #%" PRIu32 "/%u %s",msg->idx.offset,msg->idx.number
      |                 ^~~~~~~~~~~
getmsg.cpp: In member function ‘void sbbs_t::download_msg_attachments(smb_t*, smbmsg_t*, bool)’:
getmsg.cpp:376:52: warning: ‘%s’ directive output may be truncated writing up to 4096 bytes into a region of size between 3997 and 4097 [-Wformat-truncation=]
  376 |                                 SAFEPRINTF2(fpath, "%s%s", cfg.temp_dir, filename);
      |                                                    ^~~~~~                ~~~~~~~~
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:452:82: note: in definition of macro ‘SAFEPRINTF2’
  452 | #define SAFEPRINTF2(dst,fmt,a1,a2)                      snprintf(dst,sizeof(dst),fmt,a1,a2), TERMINATE(dst)
      |                                                                                  ^~~
getmsg.cpp:376:55: note: format string is defined here
  376 |                                 SAFEPRINTF2(fpath, "%s%s", cfg.temp_dir, filename);
      |                                                       ^~
In file included from ../comio/comio.h:38,
                 from sbbs.h:93,
                 from getmsg.cpp:26:
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:452:65: note: ‘snprintf’ output between 1 and 4197 bytes into a destination of size 4097
  452 | #define SAFEPRINTF2(dst,fmt,a1,a2)                      snprintf(dst,sizeof(dst),fmt,a1,a2), TERMINATE(dst)
      |                                                         ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
getmsg.cpp:376:33: note: in expansion of macro ‘SAFEPRINTF2’
  376 |                                 SAFEPRINTF2(fpath, "%s%s", cfg.temp_dir, filename);
      |                                 ^~~~~~~~~~~
getmsg.cpp: In member function ‘int sbbs_t::getmsgnum(int, time_t)’:
getmsg.cpp:537:30: warning: ‘%s’ directive output may be truncated writing up to 32 bytes into a region of size between 28 and 128 [-Wformat-truncation=]
  537 |         SAFEPRINTF2(smb.file,"%s%s",cfg.sub[subnum]->data_dir,cfg.sub[subnum]->code);
      |                              ^~~~~~
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:452:82: note: in definition of macro ‘SAFEPRINTF2’
  452 | #define SAFEPRINTF2(dst,fmt,a1,a2)                      snprintf(dst,sizeof(dst),fmt,a1,a2), TERMINATE(dst)
      |                                                                                  ^~~
getmsg.cpp:537:33: note: format string is defined here
  537 |         SAFEPRINTF2(smb.file,"%s%s",cfg.sub[subnum]->data_dir,cfg.sub[subnum]->code);
      |                                 ^~
In file included from ../comio/comio.h:38,
                 from sbbs.h:93,
                 from getmsg.cpp:26:
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:452:65: note: ‘snprintf’ output between 1 and 133 bytes into a destination of size 128
  452 | #define SAFEPRINTF2(dst,fmt,a1,a2)                      snprintf(dst,sizeof(dst),fmt,a1,a2), TERMINATE(dst)
      |                                                         ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
getmsg.cpp:537:9: note: in expansion of macro ‘SAFEPRINTF2’
  537 |         SAFEPRINTF2(smb.file,"%s%s",cfg.sub[subnum]->data_dir,cfg.sub[subnum]->code);
      |         ^~~~~~~~~~~
getmsg.cpp: In member function ‘time_t sbbs_t::getmsgtime(int, uint)’:
getmsg.cpp:562:30: warning: ‘%s’ directive output may be truncated writing up to 32 bytes into a region of size between 28 and 128 [-Wformat-truncation=]
  562 |         SAFEPRINTF2(smb.file,"%s%s",cfg.sub[subnum]->data_dir,cfg.sub[subnum]->code);
      |                              ^~~~~~
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:452:82: note: in definition of macro ‘SAFEPRINTF2’
  452 | #define SAFEPRINTF2(dst,fmt,a1,a2)                      snprintf(dst,sizeof(dst),fmt,a1,a2), TERMINATE(dst)
      |                                                                                  ^~~
getmsg.cpp:562:33: note: format string is defined here
  562 |         SAFEPRINTF2(smb.file,"%s%s",cfg.sub[subnum]->data_dir,cfg.sub[subnum]->code);
      |                                 ^~
In file included from ../comio/comio.h:38,
                 from sbbs.h:93,
                 from getmsg.cpp:26:
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:452:65: note: ‘snprintf’ output between 1 and 133 bytes into a destination of size 128
  452 | #define SAFEPRINTF2(dst,fmt,a1,a2)                      snprintf(dst,sizeof(dst),fmt,a1,a2), TERMINATE(dst)
      |                                                         ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
getmsg.cpp:562:9: note: in expansion of macro ‘SAFEPRINTF2’
  562 |         SAFEPRINTF2(smb.file,"%s%s",cfg.sub[subnum]->data_dir,cfg.sub[subnum]->code);
      |         ^~~~~~~~~~~
getmsg.cpp: In member function ‘uint sbbs_t::getlastmsg(int, uint32_t*, time_t*)’:
getmsg.cpp:644:30: warning: ‘%s’ directive output may be truncated writing up to 32 bytes into a region of size between 28 and 128 [-Wformat-truncation=]
  644 |         SAFEPRINTF2(smb.file,"%s%s",cfg.sub[subnum]->data_dir,cfg.sub[subnum]->code);
      |                              ^~~~~~
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:452:82: note: in definition of macro ‘SAFEPRINTF2’
  452 | #define SAFEPRINTF2(dst,fmt,a1,a2)                      snprintf(dst,sizeof(dst),fmt,a1,a2), TERMINATE(dst)
      |                                                                                  ^~~
getmsg.cpp:644:33: note: format string is defined here
  644 |         SAFEPRINTF2(smb.file,"%s%s",cfg.sub[subnum]->data_dir,cfg.sub[subnum]->code);
      |                                 ^~
In file included from ../comio/comio.h:38,
                 from sbbs.h:93,
                 from getmsg.cpp:26:
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:452:65: note: ‘snprintf’ output between 1 and 133 bytes into a destination of size 128
  452 | #define SAFEPRINTF2(dst,fmt,a1,a2)                      snprintf(dst,sizeof(dst),fmt,a1,a2), TERMINATE(dst)
      |                                                         ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
getmsg.cpp:644:9: note: in expansion of macro ‘SAFEPRINTF2’
  644 |         SAFEPRINTF2(smb.file,"%s%s",cfg.sub[subnum]->data_dir,cfg.sub[subnum]->code);
      |         ^~~~~~~~~~~
Compiling getnode.cpp
Compiling getstr.cpp
Compiling inkey.cpp
Compiling ident.c
Compiling jsdebug.c
Compiling js_archive.c
Compiling js_bbs.cpp
In file included from ../comio/comio.h:38,
                 from sbbs.h:93,
                 from js_bbs.cpp:22:
js_bbs.cpp: In function ‘JSBool js_put_telegram(JSContext*, uintN, jsval*)’:
js_bbs.cpp:3419:41: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size 252 [-Wformat-truncation=]
 3419 |                         SAFEPRINTF2(str,"%4s%s\r\n",nulstr,line);
      |                                         ^~~~~~~~~~~        ~~~~
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:452:82: note: in definition of macro ‘SAFEPRINTF2’
  452 | #define SAFEPRINTF2(dst,fmt,a1,a2)                      snprintf(dst,sizeof(dst),fmt,a1,a2), TERMINATE(dst)
      |                                                                                  ^~~
js_bbs.cpp:3419:45: note: format string is defined here
 3419 |                         SAFEPRINTF2(str,"%4s%s\r\n",nulstr,line);
      |                                             ^~
In file included from ../comio/comio.h:38,
                 from sbbs.h:93,
                 from js_bbs.cpp:22:
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:452:65: note: ‘snprintf’ output 7 or more bytes (assuming 262) into a destination of size 256
  452 | #define SAFEPRINTF2(dst,fmt,a1,a2)                      snprintf(dst,sizeof(dst),fmt,a1,a2), TERMINATE(dst)
      |                                                         ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
js_bbs.cpp:3419:25: note: in expansion of macro ‘SAFEPRINTF2’
 3419 |                         SAFEPRINTF2(str,"%4s%s\r\n",nulstr,line);
      |                         ^~~~~~~~~~~
Compiling js_client.c
Compiling js_com.c
Compiling js_console.cpp
Compiling js_cryptcert.c
Compiling js_cryptcon.c
Compiling js_cryptkeyset.c
Compiling js_file.c
Compiling js_file_area.c
Compiling js_global.c
Compiling js_internal.c
Compiling js_msg_area.c
Compiling js_msgbase.c
Compiling js_mqtt.c
Compiling js_filebase.c
Compiling js_queue.c
Compiling js_server.c
Compiling js_socket.c
Compiling js_sprintf.c
Compiling js_system.c
Compiling js_user.c
Compiling js_xtrn_area.c
Compiling listfile.cpp
Compiling logfile.cpp
Compiling login.cpp
Compiling logon.cpp
Compiling logout.cpp
Compiling mail.cpp
Compiling main.cpp
In file included from ../comio/comio.h:38,
                 from sbbs.h:93,
                 from main.cpp:22:
main.cpp: In member function ‘int sbbs_t::lputs(int, const char*)’:
main.cpp:275:36: warning: ‘%s’ directive output may be truncated writing up to 127 bytes into a region of size 32 [-Wformat-truncation=]
  275 |                 SAFEPRINTF(prefix, "%s ", client_name);
      |                                    ^~~~~
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:451:82: note: in definition of macro ‘SAFEPRINTF’
  451 | #define SAFEPRINTF(dst,fmt,arg)                         snprintf(dst,sizeof(dst),fmt,arg), TERMINATE(dst)
      |                                                                                  ^~~
main.cpp:275:37: note: format string is defined here
  275 |                 SAFEPRINTF(prefix, "%s ", client_name);
      |                                     ^~
In file included from ../comio/comio.h:38,
                 from sbbs.h:93,
                 from main.cpp:22:
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:451:65: note: ‘snprintf’ output between 2 and 129 bytes into a destination of size 32
  451 | #define SAFEPRINTF(dst,fmt,arg)                         snprintf(dst,sizeof(dst),fmt,arg), TERMINATE(dst)
      |                                                         ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
main.cpp:275:17: note: in expansion of macro ‘SAFEPRINTF’
  275 |                 SAFEPRINTF(prefix, "%s ", client_name);
      |                 ^~~~~~~~~~
main.cpp: In function ‘void event_thread(void*)’:
main.cpp:2989:77: warning: ‘%x’ directive output may be truncated writing between 1 and 8 bytes into a region of size between 0 and 4096 [-Wformat-truncation=]
 2989 |                                                         SAFEPRINTF2(newname,"%s.%x.bad",str,(int)now);
      |                                                                             ^~~~~~~~~~~
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:452:82: note: in definition of macro ‘SAFEPRINTF2’
  452 | #define SAFEPRINTF2(dst,fmt,a1,a2)                      snprintf(dst,sizeof(dst),fmt,a1,a2), TERMINATE(dst)
      |                                                                                  ^~~
main.cpp:2989:81: note: format string is defined here
 2989 |                                                         SAFEPRINTF2(newname,"%s.%x.bad",str,(int)now);
      |                                                                                 ^~
In file included from ../comio/comio.h:38,
                 from sbbs.h:93,
                 from main.cpp:22:
main.cpp:2989:77: note: using the range [0, 4294967295] for directive argument
 2989 |                                                         SAFEPRINTF2(newname,"%s.%x.bad",str,(int)now);
      |                                                                             ^~~~~~~~~~~
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:452:82: note: in definition of macro ‘SAFEPRINTF2’
  452 | #define SAFEPRINTF2(dst,fmt,a1,a2)                      snprintf(dst,sizeof(dst),fmt,a1,a2), TERMINATE(dst)
      |                                                                                  ^~~
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:452:65: note: ‘snprintf’ output between 7 and 4110 bytes into a destination of size 4097
  452 | #define SAFEPRINTF2(dst,fmt,a1,a2)                      snprintf(dst,sizeof(dst),fmt,a1,a2), TERMINATE(dst)
      |                                                         ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
main.cpp:2989:57: note: in expansion of macro ‘SAFEPRINTF2’
 2989 |                                                         SAFEPRINTF2(newname,"%s.%x.bad",str,(int)now);
      |                                                         ^~~~~~~~~~~
main.cpp: In function ‘void bbs_thread(void*)’:
main.cpp:4832:35: warning: ‘snprintf’ output truncated before the last format character [-Wformat-truncation=]
 4832 |         snprintf(str, 2, "\x01\x02");
      |                                   ^
main.cpp:4832:17: note: ‘snprintf’ output 3 bytes into a destination of size 2
 4832 |         snprintf(str, 2, "\x01\x02");
      |         ~~~~~~~~^~~~~~~~~~~~~~~~~~~~
main.cpp:5756:61: warning: ‘%s’ directive output may be truncated writing up to 1023 bytes into a region of size 108 [-Wformat-truncation=]
 5756 |                 snprintf(str,sizeof(uspy_addr.un.sun_path),"%slocalspy%d.sock", startup->temp_dir, i+1);
      |                                                             ^~
main.cpp:5756:25: note: ‘snprintf’ output between 15 and 1048 bytes into a destination of size 108
 5756 |                 snprintf(str,sizeof(uspy_addr.un.sun_path),"%slocalspy%d.sock", startup->temp_dir, i+1);
      |                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
Compiling msg_id.c
Compiling msgtoqwk.cpp
Compiling netmail.cpp
In file included from ../comio/comio.h:38,
                 from sbbs.h:93,
                 from netmail.cpp:22:
netmail.cpp: In member function ‘bool sbbs_t::netmail(const char*, const char*, int, smb_t*, smbmsg_t*, str_list_t)’:
netmail.cpp:212:33: warning: ‘%s’ directive output may be truncated writing up to 511 bytes into a region of size 256 [-Wformat-truncation=]
  212 |                 SAFEPRINTF3(str,"%sfile/%04u.out/%s",tmp,useron.number,fname);
      |                                 ^~~~~~~~~~~~~~~~~~~~ ~~~
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:453:74: note: in definition of macro ‘SAFEPRINTF3’
  453 | #define SAFEPRINTF3(dst,fmt,a1,a2,a3)           snprintf(dst,sizeof(dst),fmt,a1,a2,a3), TERMINATE(dst)
      |                                                                          ^~~
netmail.cpp:212:34: note: format string is defined here
  212 |                 SAFEPRINTF3(str,"%sfile/%04u.out/%s",tmp,useron.number,fname);
      |                                  ^~
In file included from ../comio/comio.h:38,
                 from sbbs.h:93,
                 from netmail.cpp:22:
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:453:57: note: ‘snprintf’ output between 15 and 654 bytes into a destination of size 256
  453 | #define SAFEPRINTF3(dst,fmt,a1,a2,a3)           snprintf(dst,sizeof(dst),fmt,a1,a2,a3), TERMINATE(dst)
      |                                                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
netmail.cpp:212:17: note: in expansion of macro ‘SAFEPRINTF3’
  212 |                 SAFEPRINTF3(str,"%sfile/%04u.out/%s",tmp,useron.number,fname);
      |                 ^~~~~~~~~~~
netmail.cpp:348:33: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size 240 [-Wformat-truncation=]
  348 |                 SAFEPRINTF2(str,"sent NetMail to %s (%s)"
      |                                 ^~~~~~~~~~~~~~~~~~~~~~~~~
  349 |                         ,to, smb_faddrtoa(&dest_addr,tmp));
      |                          ~~
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:452:82: note: in definition of macro ‘SAFEPRINTF2’
  452 | #define SAFEPRINTF2(dst,fmt,a1,a2)                      snprintf(dst,sizeof(dst),fmt,a1,a2), TERMINATE(dst)
      |                                                                                  ^~~
netmail.cpp:348:50: note: format string is defined here
  348 |                 SAFEPRINTF2(str,"sent NetMail to %s (%s)"
      |                                                  ^~
In file included from ../comio/comio.h:38,
                 from sbbs.h:93,
                 from netmail.cpp:22:
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:452:65: note: ‘snprintf’ output 20 or more bytes (assuming 275) into a destination of size 256
  452 | #define SAFEPRINTF2(dst,fmt,a1,a2)                      snprintf(dst,sizeof(dst),fmt,a1,a2), TERMINATE(dst)
      |                                                         ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
netmail.cpp:348:17: note: in expansion of macro ‘SAFEPRINTF2’
  348 |                 SAFEPRINTF2(str,"sent NetMail to %s (%s)"
      |                 ^~~~~~~~~~~
netmail.cpp:345:33: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size 224 [-Wformat-truncation=]
  345 |                 SAFEPRINTF2(str,"sent NetMail file attachment to %s (%s)"
      |                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  346 |                         ,to, smb_faddrtoa(&dest_addr,tmp));
      |                          ~~
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:452:82: note: in definition of macro ‘SAFEPRINTF2’
  452 | #define SAFEPRINTF2(dst,fmt,a1,a2)                      snprintf(dst,sizeof(dst),fmt,a1,a2), TERMINATE(dst)
      |                                                                                  ^~~
netmail.cpp:345:66: note: format string is defined here
  345 |                 SAFEPRINTF2(str,"sent NetMail file attachment to %s (%s)"
      |                                                                  ^~
In file included from ../comio/comio.h:38,
                 from sbbs.h:93,
                 from netmail.cpp:22:
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:452:65: note: ‘snprintf’ output 36 or more bytes (assuming 291) into a destination of size 256
  452 | #define SAFEPRINTF2(dst,fmt,a1,a2)                      snprintf(dst,sizeof(dst),fmt,a1,a2), TERMINATE(dst)
      |                                                         ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
netmail.cpp:345:17: note: in expansion of macro ‘SAFEPRINTF2’
  345 |                 SAFEPRINTF2(str,"sent NetMail file attachment to %s (%s)"
      |                 ^~~~~~~~~~~
netmail.cpp: In member function ‘bool sbbs_t::inetmail(const char*, const char*, int, smb_t*, smbmsg_t*, str_list_t)’:
netmail.cpp:1047:34: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 141 and 242 [-Wformat-truncation=]
 1047 |                 SAFEPRINTF3(str2,"%sfile/%04u.out/%s",cfg.data_dir,useron.number,title);
      |                                  ^~~~~~~~~~~~~~~~~~~~                            ~~~~~
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:453:74: note: in definition of macro ‘SAFEPRINTF3’
  453 | #define SAFEPRINTF3(dst,fmt,a1,a2,a3)           snprintf(dst,sizeof(dst),fmt,a1,a2,a3), TERMINATE(dst)
      |                                                                          ^~~
netmail.cpp:1047:51: note: format string is defined here
 1047 |                 SAFEPRINTF3(str2,"%sfile/%04u.out/%s",cfg.data_dir,useron.number,title);
      |                                                   ^~
In file included from ../comio/comio.h:38,
                 from sbbs.h:93,
                 from netmail.cpp:22:
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:453:57: note: ‘snprintf’ output between 15 and 371 bytes into a destination of size 256
  453 | #define SAFEPRINTF3(dst,fmt,a1,a2,a3)           snprintf(dst,sizeof(dst),fmt,a1,a2,a3), TERMINATE(dst)
      |                                                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
netmail.cpp:1047:17: note: in expansion of macro ‘SAFEPRINTF3’
 1047 |                 SAFEPRINTF3(str2,"%sfile/%04u.out/%s",cfg.data_dir,useron.number,title);
      |                 ^~~~~~~~~~~
netmail.cpp:1250:25: warning: ‘%s’ directive output may be truncated writing up to 511 bytes into a region of size 234 [-Wformat-truncation=]
 1250 |         SAFEPRINTF(str, "sent Internet Mail to %s", to_list);
      |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~  ~~~~~~~
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:451:82: note: in definition of macro ‘SAFEPRINTF’
  451 | #define SAFEPRINTF(dst,fmt,arg)                         snprintf(dst,sizeof(dst),fmt,arg), TERMINATE(dst)
      |                                                                                  ^~~
netmail.cpp:1250:48: note: format string is defined here
 1250 |         SAFEPRINTF(str, "sent Internet Mail to %s", to_list);
      |                                                ^~
In file included from ../comio/comio.h:38,
                 from sbbs.h:93,
                 from netmail.cpp:22:
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:451:65: note: ‘snprintf’ output between 23 and 534 bytes into a destination of size 256
  451 | #define SAFEPRINTF(dst,fmt,arg)                         snprintf(dst,sizeof(dst),fmt,arg), TERMINATE(dst)
      |                                                         ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
netmail.cpp:1250:9: note: in expansion of macro ‘SAFEPRINTF’
 1250 |         SAFEPRINTF(str, "sent Internet Mail to %s", to_list);
      |         ^~~~~~~~~~
netmail.cpp: In member function ‘bool sbbs_t::qnetmail(const char*, const char*, int, smb_t*, smbmsg_t*)’:
netmail.cpp:1462:25: warning: ‘%s’ directive output may be truncated writing up to 127 bytes into a region of size between 107 and 234 [-Wformat-truncation=]
 1462 |         SAFEPRINTF2(str,"sent QWK NetMail to %s (%s)"
      |                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1463 |                 ,to,fulladdr);
      |                     ~~~~~~~~
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:452:82: note: in definition of macro ‘SAFEPRINTF2’
  452 | #define SAFEPRINTF2(dst,fmt,a1,a2)                      snprintf(dst,sizeof(dst),fmt,a1,a2), TERMINATE(dst)
      |                                                                                  ^~~
netmail.cpp:1462:50: note: format string is defined here
 1462 |         SAFEPRINTF2(str,"sent QWK NetMail to %s (%s)"
      |                                                  ^~
In file included from ../comio/comio.h:38,
                 from sbbs.h:93,
                 from netmail.cpp:22:
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:452:65: note: ‘snprintf’ output between 24 and 278 bytes into a destination of size 256
  452 | #define SAFEPRINTF2(dst,fmt,a1,a2)                      snprintf(dst,sizeof(dst),fmt,a1,a2), TERMINATE(dst)
      |                                                         ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
netmail.cpp:1462:9: note: in expansion of macro ‘SAFEPRINTF2’
 1462 |         SAFEPRINTF2(str,"sent QWK NetMail to %s (%s)"
      |         ^~~~~~~~~~~
Compiling newuser.cpp
In file included from ../comio/comio.h:38,
                 from sbbs.h:93,
                 from newuser.cpp:22:
newuser.cpp: In member function ‘int sbbs_t::newuser()’:
newuser.cpp:68:40: warning: ‘%s’ directive output may be truncated writing up to 511 bytes into a region of size 496 [-Wformat-truncation=]
   68 |                         SAFEPRINTF(tmp,"NUP Attempted: '%s'",str);
      |                                        ^~~~~~~~~~~~~~~~~~~~~ ~~~
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:451:82: note: in definition of macro ‘SAFEPRINTF’
  451 | #define SAFEPRINTF(dst,fmt,arg)                         snprintf(dst,sizeof(dst),fmt,arg), TERMINATE(dst)
      |                                                                                  ^~~
newuser.cpp:68:57: note: format string is defined here
   68 |                         SAFEPRINTF(tmp,"NUP Attempted: '%s'",str);
      |                                                         ^~
In file included from ../comio/comio.h:38,
                 from sbbs.h:93,
                 from newuser.cpp:22:
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:451:65: note: ‘snprintf’ output between 18 and 529 bytes into a destination of size 512
  451 | #define SAFEPRINTF(dst,fmt,arg)                         snprintf(dst,sizeof(dst),fmt,arg), TERMINATE(dst)
      |                                                         ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
newuser.cpp:68:25: note: in expansion of macro ‘SAFEPRINTF’
   68 |                         SAFEPRINTF(tmp,"NUP Attempted: '%s'",str);
      |                         ^~~~~~~~~~
newuser.cpp:383:49: warning: ‘%s’ directive output may be truncated writing up to 511 bytes into a region of size 481 [-Wformat-truncation=]
  383 |                                 SAFEPRINTF2(tmp,"FAILED Password verification: '%s' instead of '%s'"
      |                                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  384 |                                         ,str
      |                                          ~~~
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:452:82: note: in definition of macro ‘SAFEPRINTF2’
  452 | #define SAFEPRINTF2(dst,fmt,a1,a2)                      snprintf(dst,sizeof(dst),fmt,a1,a2), TERMINATE(dst)
      |                                                                                  ^~~
newuser.cpp:383:81: note: format string is defined here
  383 |                                 SAFEPRINTF2(tmp,"FAILED Password verification: '%s' instead of '%s'"
      |                                                                                 ^~
In file included from ../comio/comio.h:38,
                 from sbbs.h:93,
                 from newuser.cpp:22:
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:452:65: note: ‘snprintf’ output between 47 and 598 bytes into a destination of size 512
  452 | #define SAFEPRINTF2(dst,fmt,a1,a2)                      snprintf(dst,sizeof(dst),fmt,a1,a2), TERMINATE(dst)
      |                                                         ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
newuser.cpp:383:33: note: in expansion of macro ‘SAFEPRINTF2’
  383 |                                 SAFEPRINTF2(tmp,"FAILED Password verification: '%s' instead of '%s'"
      |                                 ^~~~~~~~~~~
newuser.cpp:405:40: warning: ‘%s’ directive output may be truncated writing up to 511 bytes into a region of size 492 [-Wformat-truncation=]
  405 |                         SAFEPRINTF(tmp,"failed magic word: '%s'",str);
      |                                        ^~~~~~~~~~~~~~~~~~~~~~~~~ ~~~
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:451:82: note: in definition of macro ‘SAFEPRINTF’
  451 | #define SAFEPRINTF(dst,fmt,arg)                         snprintf(dst,sizeof(dst),fmt,arg), TERMINATE(dst)
      |                                                                                  ^~~
newuser.cpp:405:61: note: format string is defined here
  405 |                         SAFEPRINTF(tmp,"failed magic word: '%s'",str);
      |                                                             ^~
In file included from ../comio/comio.h:38,
                 from sbbs.h:93,
                 from newuser.cpp:22:
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:451:65: note: ‘snprintf’ output between 22 and 533 bytes into a destination of size 512
  451 | #define SAFEPRINTF(dst,fmt,arg)                         snprintf(dst,sizeof(dst),fmt,arg), TERMINATE(dst)
      |                                                         ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
newuser.cpp:405:25: note: in expansion of macro ‘SAFEPRINTF’
  405 |                         SAFEPRINTF(tmp,"failed magic word: '%s'",str);
      |                         ^~~~~~~~~~
Compiling pack_qwk.cpp
In file included from ../comio/comio.h:38,
                 from sbbs.h:93,
                 from pack_qwk.cpp:22:
pack_qwk.cpp: In member function ‘bool sbbs_t::pack_qwk(char*, uint*, bool)’:
pack_qwk.cpp:454:54: warning: ‘%s’ directive output may be truncated writing up to 32 bytes into a region of size between 28 and 128 [-Wformat-truncation=]
  454 |                                 SAFEPRINTF2(smb.file,"%s%s"
      |                                                      ^~~~~~
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:452:82: note: in definition of macro ‘SAFEPRINTF2’
  452 | #define SAFEPRINTF2(dst,fmt,a1,a2)                      snprintf(dst,sizeof(dst),fmt,a1,a2), TERMINATE(dst)
      |                                                                                  ^~~
pack_qwk.cpp:454:57: note: format string is defined here
  454 |                                 SAFEPRINTF2(smb.file,"%s%s"
      |                                                         ^~
In file included from ../comio/comio.h:38,
                 from sbbs.h:93,
                 from pack_qwk.cpp:22:
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:452:65: note: ‘snprintf’ output between 1 and 133 bytes into a destination of size 128
  452 | #define SAFEPRINTF2(dst,fmt,a1,a2)                      snprintf(dst,sizeof(dst),fmt,a1,a2), TERMINATE(dst)
      |                                                         ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
pack_qwk.cpp:454:33: note: in expansion of macro ‘SAFEPRINTF2’
  454 |                                 SAFEPRINTF2(smb.file,"%s%s"
      |                                 ^~~~~~~~~~~
Compiling pack_rep.cpp
In file included from ../comio/comio.h:38,
                 from sbbs.h:93,
                 from pack_rep.cpp:22:
pack_rep.cpp: In member function ‘bool sbbs_t::pack_rep(uint)’:
pack_rep.cpp:188:38: warning: ‘%s’ directive output may be truncated writing up to 32 bytes into a region of size between 28 and 128 [-Wformat-truncation=]
  188 |                 SAFEPRINTF2(smb.file,"%s%s"
      |                                      ^~~~~~
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:452:82: note: in definition of macro ‘SAFEPRINTF2’
  452 | #define SAFEPRINTF2(dst,fmt,a1,a2)                      snprintf(dst,sizeof(dst),fmt,a1,a2), TERMINATE(dst)
      |                                                                                  ^~~
pack_rep.cpp:188:41: note: format string is defined here
  188 |                 SAFEPRINTF2(smb.file,"%s%s"
      |                                         ^~
In file included from ../comio/comio.h:38,
                 from sbbs.h:93,
                 from pack_rep.cpp:22:
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:452:65: note: ‘snprintf’ output between 1 and 133 bytes into a destination of size 128
  452 | #define SAFEPRINTF2(dst,fmt,a1,a2)                      snprintf(dst,sizeof(dst),fmt,a1,a2), TERMINATE(dst)
      |                                                         ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
pack_rep.cpp:188:17: note: in expansion of macro ‘SAFEPRINTF2’
  188 |                 SAFEPRINTF2(smb.file,"%s%s"
      |                 ^~~~~~~~~~~
Compiling postmsg.cpp
In file included from ../comio/comio.h:38,
                 from sbbs.h:93,
                 from postmsg.cpp:22:
postmsg.cpp: In function ‘int savemsg(scfg_t*, smb_t*, smbmsg_t*, client_t*, const char*, char*, smbmsg_t*)’:
postmsg.cpp:426:47: warning: ‘%s’ directive output may be truncated writing up to 32 bytes into a region of size between 28 and 128 [-Wformat-truncation=]
  426 |                         SAFEPRINTF2(smb->file,"%s%s",cfg->sub[smb->subnum]->data_dir,cfg->sub[smb->subnum]->code);
      |                                               ^~~~~~
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:452:82: note: in definition of macro ‘SAFEPRINTF2’
  452 | #define SAFEPRINTF2(dst,fmt,a1,a2)                      snprintf(dst,sizeof(dst),fmt,a1,a2), TERMINATE(dst)
      |                                                                                  ^~~
postmsg.cpp:426:50: note: format string is defined here
  426 |                         SAFEPRINTF2(smb->file,"%s%s",cfg->sub[smb->subnum]->data_dir,cfg->sub[smb->subnum]->code);
      |                                                  ^~
In file included from ../comio/comio.h:38,
                 from sbbs.h:93,
                 from postmsg.cpp:22:
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:452:65: note: ‘snprintf’ output between 1 and 133 bytes into a destination of size 128
  452 | #define SAFEPRINTF2(dst,fmt,a1,a2)                      snprintf(dst,sizeof(dst),fmt,a1,a2), TERMINATE(dst)
      |                                                         ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
postmsg.cpp:426:25: note: in expansion of macro ‘SAFEPRINTF2’
  426 |                         SAFEPRINTF2(smb->file,"%s%s",cfg->sub[smb->subnum]->data_dir,cfg->sub[smb->subnum]->code);
      |                         ^~~~~~~~~~~
Compiling prntfile.cpp
Compiling putmsg.cpp
In file included from ../comio/comio.h:38,
                 from sbbs.h:93,
                 from putmsg.cpp:22:
putmsg.cpp: In member function ‘char sbbs_t::putmsgfrag(const char*, int&, int, JSObject*)’:
putmsg.cpp:207:58: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 28 and 128 [-Wformat-truncation=]
  207 |                                         SAFEPRINTF2(tmp3,"%s%s",cfg.text_dir,tmp2);
      |                                                          ^~~~~~              ~~~~
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:452:82: note: in definition of macro ‘SAFEPRINTF2’
  452 | #define SAFEPRINTF2(dst,fmt,a1,a2)                      snprintf(dst,sizeof(dst),fmt,a1,a2), TERMINATE(dst)
      |                                                                                  ^~~
putmsg.cpp:207:61: note: format string is defined here
  207 |                                         SAFEPRINTF2(tmp3,"%s%s",cfg.text_dir,tmp2);
      |                                                             ^~
In file included from ../comio/comio.h:38,
                 from sbbs.h:93,
                 from putmsg.cpp:22:
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:452:65: note: ‘snprintf’ output between 1 and 356 bytes into a destination of size 128
  452 | #define SAFEPRINTF2(dst,fmt,a1,a2)                      snprintf(dst,sizeof(dst),fmt,a1,a2), TERMINATE(dst)
      |                                                         ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
putmsg.cpp:207:41: note: in expansion of macro ‘SAFEPRINTF2’
  207 |                                         SAFEPRINTF2(tmp3,"%s%s",cfg.text_dir,tmp2);
      |                                         ^~~~~~~~~~~
Compiling putnode.cpp
Compiling qwk.cpp
Compiling qwktomsg.cpp
In file included from ../comio/comio.h:38,
                 from sbbs.h:93,
                 from qwktomsg.cpp:22:
qwktomsg.cpp: In member function ‘bool sbbs_t::qwk_import_msg(FILE*, char*, uint, char, smb_t*, uint, smbmsg_t*, bool*)’:
qwktomsg.cpp:506:49: warning: ‘%s’ directive output may be truncated writing up to 8191 bytes into a region of size between 169 and 224 [-Wformat-truncation=]
  506 |                                 SAFEPRINTF3(str,"duplicate message attempt in %s %s (%s)"
      |                                                 ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:453:74: note: in definition of macro ‘SAFEPRINTF3’
  453 | #define SAFEPRINTF3(dst,fmt,a1,a2,a3)           snprintf(dst,sizeof(dst),fmt,a1,a2,a3), TERMINATE(dst)
      |                                                                          ^~~
qwktomsg.cpp:506:86: note: format string is defined here
  506 |                                 SAFEPRINTF3(str,"duplicate message attempt in %s %s (%s)"
      |                                                                                      ^~
In file included from ../comio/comio.h:38,
                 from sbbs.h:93,
                 from qwktomsg.cpp:22:
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:453:57: note: ‘snprintf’ output between 34 and 8280 bytes into a destination of size 256
  453 | #define SAFEPRINTF3(dst,fmt,a1,a2,a3)           snprintf(dst,sizeof(dst),fmt,a1,a2,a3), TERMINATE(dst)
      |                                                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
qwktomsg.cpp:506:33: note: in expansion of macro ‘SAFEPRINTF3’
  506 |                                 SAFEPRINTF3(str,"duplicate message attempt in %s %s (%s)"
      |                                 ^~~~~~~~~~~
qwktomsg.cpp:503:48: warning: ‘%s’ directive output may be truncated writing up to 8191 bytes into a region of size 230 [-Wformat-truncation=]
  503 |                                 SAFEPRINTF(str,"duplicate e-mail attempt (%s)", smb->last_error);
      |                                                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:451:82: note: in definition of macro ‘SAFEPRINTF’
  451 | #define SAFEPRINTF(dst,fmt,arg)                         snprintf(dst,sizeof(dst),fmt,arg), TERMINATE(dst)
      |                                                                                  ^~~
qwktomsg.cpp:503:75: note: format string is defined here
  503 |                                 SAFEPRINTF(str,"duplicate e-mail attempt (%s)", smb->last_error);
      |                                                                           ^~
In file included from ../comio/comio.h:38,
                 from sbbs.h:93,
                 from qwktomsg.cpp:22:
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:451:65: note: ‘snprintf’ output between 28 and 8219 bytes into a destination of size 256
  451 | #define SAFEPRINTF(dst,fmt,arg)                         snprintf(dst,sizeof(dst),fmt,arg), TERMINATE(dst)
      |                                                         ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
qwktomsg.cpp:503:33: note: in expansion of macro ‘SAFEPRINTF’
  503 |                                 SAFEPRINTF(str,"duplicate e-mail attempt (%s)", smb->last_error);
      |                                 ^~~~~~~~~~
Compiling readmail.cpp
Compiling readmsgs.cpp
In file included from ../comio/comio.h:38,
                 from sbbs.h:93,
                 from readmsgs.cpp:22:
readmsgs.cpp: In member function ‘int sbbs_t::scanposts(int, int, const char*)’:
readmsgs.cpp:457:30: warning: ‘%s’ directive output may be truncated writing up to 32 bytes into a region of size between 28 and 128 [-Wformat-truncation=]
  457 |         SAFEPRINTF2(smb.file,"%s%s",cfg.sub[subnum]->data_dir,cfg.sub[subnum]->code);
      |                              ^~~~~~
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:452:82: note: in definition of macro ‘SAFEPRINTF2’
  452 | #define SAFEPRINTF2(dst,fmt,a1,a2)                      snprintf(dst,sizeof(dst),fmt,a1,a2), TERMINATE(dst)
      |                                                                                  ^~~
readmsgs.cpp:457:33: note: format string is defined here
  457 |         SAFEPRINTF2(smb.file,"%s%s",cfg.sub[subnum]->data_dir,cfg.sub[subnum]->code);
      |                                 ^~
In file included from ../comio/comio.h:38,
                 from sbbs.h:93,
                 from readmsgs.cpp:22:
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:452:65: note: ‘snprintf’ output between 1 and 133 bytes into a destination of size 128
  452 | #define SAFEPRINTF2(dst,fmt,a1,a2)                      snprintf(dst,sizeof(dst),fmt,a1,a2), TERMINATE(dst)
      |                                                         ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
readmsgs.cpp:457:9: note: in expansion of macro ‘SAFEPRINTF2’
  457 |         SAFEPRINTF2(smb.file,"%s%s",cfg.sub[subnum]->data_dir,cfg.sub[subnum]->code);
      |         ^~~~~~~~~~~
readmsgs.cpp: In member function ‘int sbbs_t::listsub(int, int, int, const char*)’:
readmsgs.cpp:1640:30: warning: ‘%s’ directive output may be truncated writing up to 32 bytes into a region of size between 28 and 128 [-Wformat-truncation=]
 1640 |         SAFEPRINTF2(smb.file,"%s%s",cfg.sub[subnum]->data_dir,cfg.sub[subnum]->code);
      |                              ^~~~~~
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:452:82: note: in definition of macro ‘SAFEPRINTF2’
  452 | #define SAFEPRINTF2(dst,fmt,a1,a2)                      snprintf(dst,sizeof(dst),fmt,a1,a2), TERMINATE(dst)
      |                                                                                  ^~~
readmsgs.cpp:1640:33: note: format string is defined here
 1640 |         SAFEPRINTF2(smb.file,"%s%s",cfg.sub[subnum]->data_dir,cfg.sub[subnum]->code);
      |                                 ^~
In file included from ../comio/comio.h:38,
                 from sbbs.h:93,
                 from readmsgs.cpp:22:
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:452:65: note: ‘snprintf’ output between 1 and 133 bytes into a destination of size 128
  452 | #define SAFEPRINTF2(dst,fmt,a1,a2)                      snprintf(dst,sizeof(dst),fmt,a1,a2), TERMINATE(dst)
      |                                                         ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
readmsgs.cpp:1640:9: note: in expansion of macro ‘SAFEPRINTF2’
 1640 |         SAFEPRINTF2(smb.file,"%s%s",cfg.sub[subnum]->data_dir,cfg.sub[subnum]->code);
      |         ^~~~~~~~~~~
Compiling scandirs.cpp
Compiling scansubs.cpp
Compiling sockopts.c
Compiling str.cpp
Compiling telgate.cpp
Compiling text_sec.cpp
Compiling tmp_xfer.cpp
Compiling un_qwk.cpp
In file included from ../comio/comio.h:38,
                 from sbbs.h:93,
                 from un_qwk.cpp:22:
un_qwk.cpp: In member function ‘bool sbbs_t::unpack_qwk(char*, uint)’:
un_qwk.cpp:293:46: warning: ‘%s’ directive output may be truncated writing up to 32 bytes into a region of size between 28 and 128 [-Wformat-truncation=]
  293 |                         SAFEPRINTF2(smb.file,"%s%s",cfg.sub[j]->data_dir,cfg.sub[j]->code);
      |                                              ^~~~~~
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:452:82: note: in definition of macro ‘SAFEPRINTF2’
  452 | #define SAFEPRINTF2(dst,fmt,a1,a2)                      snprintf(dst,sizeof(dst),fmt,a1,a2), TERMINATE(dst)
      |                                                                                  ^~~
un_qwk.cpp:293:49: note: format string is defined here
  293 |                         SAFEPRINTF2(smb.file,"%s%s",cfg.sub[j]->data_dir,cfg.sub[j]->code);
      |                                                 ^~
In file included from ../comio/comio.h:38,
                 from sbbs.h:93,
                 from un_qwk.cpp:22:
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:452:65: note: ‘snprintf’ output between 1 and 133 bytes into a destination of size 128
  452 | #define SAFEPRINTF2(dst,fmt,a1,a2)                      snprintf(dst,sizeof(dst),fmt,a1,a2), TERMINATE(dst)
      |                                                         ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
un_qwk.cpp:293:25: note: in expansion of macro ‘SAFEPRINTF2’
  293 |                         SAFEPRINTF2(smb.file,"%s%s",cfg.sub[j]->data_dir,cfg.sub[j]->code);
      |                         ^~~~~~~~~~~
un_qwk.cpp:399:35: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 0 and 4096 [-Wformat-truncation=]
  399 |                 SAFEPRINTF2(fname,"%s/%s",inbox,dirent->d_name);
      |                                   ^~~~~~~
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:452:82: note: in definition of macro ‘SAFEPRINTF2’
  452 | #define SAFEPRINTF2(dst,fmt,a1,a2)                      snprintf(dst,sizeof(dst),fmt,a1,a2), TERMINATE(dst)
      |                                                                                  ^~~
un_qwk.cpp:399:39: note: format string is defined here
  399 |                 SAFEPRINTF2(fname,"%s/%s",inbox,dirent->d_name);
      |                                       ^~
In file included from ../comio/comio.h:38,
                 from sbbs.h:93,
                 from un_qwk.cpp:22:
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:452:65: note: ‘snprintf’ output between 2 and 4353 bytes into a destination of size 4097
  452 | #define SAFEPRINTF2(dst,fmt,a1,a2)                      snprintf(dst,sizeof(dst),fmt,a1,a2), TERMINATE(dst)
      |                                                         ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
un_qwk.cpp:399:17: note: in expansion of macro ‘SAFEPRINTF2’
  399 |                 SAFEPRINTF2(fname,"%s/%s",inbox,dirent->d_name);
      |                 ^~~~~~~~~~~
Compiling un_rep.cpp
In file included from ../comio/comio.h:38,
                 from sbbs.h:93,
                 from un_rep.cpp:22:
un_rep.cpp: In member function ‘bool sbbs_t::unpack_rep(char*)’:
un_rep.cpp:443:54: warning: ‘%s’ directive output may be truncated writing up to 32 bytes into a region of size between 28 and 128 [-Wformat-truncation=]
  443 |                                 SAFEPRINTF2(smb.file,"%s%s",cfg.sub[n]->data_dir,cfg.sub[n]->code);
      |                                                      ^~~~~~
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:452:82: note: in definition of macro ‘SAFEPRINTF2’
  452 | #define SAFEPRINTF2(dst,fmt,a1,a2)                      snprintf(dst,sizeof(dst),fmt,a1,a2), TERMINATE(dst)
      |                                                                                  ^~~
un_rep.cpp:443:57: note: format string is defined here
  443 |                                 SAFEPRINTF2(smb.file,"%s%s",cfg.sub[n]->data_dir,cfg.sub[n]->code);
      |                                                         ^~
In file included from ../comio/comio.h:38,
                 from sbbs.h:93,
                 from un_rep.cpp:22:
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:452:65: note: ‘snprintf’ output between 1 and 133 bytes into a destination of size 128
  452 | #define SAFEPRINTF2(dst,fmt,a1,a2)                      snprintf(dst,sizeof(dst),fmt,a1,a2), TERMINATE(dst)
      |                                                         ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
un_rep.cpp:443:33: note: in expansion of macro ‘SAFEPRINTF2’
  443 |                                 SAFEPRINTF2(smb.file,"%s%s",cfg.sub[n]->data_dir,cfg.sub[n]->code);
      |                                 ^~~~~~~~~~~
un_rep.cpp:607:43: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 0 and 4096 [-Wformat-truncation=]
  607 |                         SAFEPRINTF2(fname,"%s/%s",inbox,dirent->d_name);
      |                                           ^~~~~~~
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:452:82: note: in definition of macro ‘SAFEPRINTF2’
  452 | #define SAFEPRINTF2(dst,fmt,a1,a2)                      snprintf(dst,sizeof(dst),fmt,a1,a2), TERMINATE(dst)
      |                                                                                  ^~~
un_rep.cpp:607:47: note: format string is defined here
  607 |                         SAFEPRINTF2(fname,"%s/%s",inbox,dirent->d_name);
      |                                               ^~
In file included from ../comio/comio.h:38,
                 from sbbs.h:93,
                 from un_rep.cpp:22:
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:452:65: note: ‘snprintf’ output between 2 and 4353 bytes into a destination of size 4097
  452 | #define SAFEPRINTF2(dst,fmt,a1,a2)                      snprintf(dst,sizeof(dst),fmt,a1,a2), TERMINATE(dst)
      |                                                         ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
un_rep.cpp:607:25: note: in expansion of macro ‘SAFEPRINTF2’
  607 |                         SAFEPRINTF2(fname,"%s/%s",inbox,dirent->d_name);
      |                         ^~~~~~~~~~~
Compiling upload.cpp
In file included from ../comio/comio.h:38,
                 from sbbs.h:93,
                 from upload.cpp:22:
upload.cpp: In member function ‘bool sbbs_t::bulkupload(int)’:
upload.cpp:522:33: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 1 and 4097 [-Wformat-truncation=]
  522 |                 SAFEPRINTF2(str,"%s%s",path,dirent->d_name);
      |                                 ^~~~~~
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:452:82: note: in definition of macro ‘SAFEPRINTF2’
  452 | #define SAFEPRINTF2(dst,fmt,a1,a2)                      snprintf(dst,sizeof(dst),fmt,a1,a2), TERMINATE(dst)
      |                                                                                  ^~~
upload.cpp:522:36: note: format string is defined here
  522 |                 SAFEPRINTF2(str,"%s%s",path,dirent->d_name);
      |                                    ^~
In file included from ../comio/comio.h:38,
                 from sbbs.h:93,
                 from upload.cpp:22:
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:452:65: note: ‘snprintf’ output between 1 and 4352 bytes into a destination of size 4097
  452 | #define SAFEPRINTF2(dst,fmt,a1,a2)                      snprintf(dst,sizeof(dst),fmt,a1,a2), TERMINATE(dst)
      |                                                         ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
upload.cpp:522:17: note: in expansion of macro ‘SAFEPRINTF2’
  522 |                 SAFEPRINTF2(str,"%s%s",path,dirent->d_name);
      |                 ^~~~~~~~~~~
Compiling useredit.cpp
Compiling viewfile.cpp
Compiling writemsg.cpp
In file included from ../comio/comio.h:38,
                 from sbbs.h:93,
                 from writemsg.cpp:22:
writemsg.cpp: In member function ‘bool sbbs_t::editfile(char*, uint)’:
writemsg.cpp:1277:41: warning: ‘%s’ directive output may be truncated writing up to 4096 bytes into a region of size 4073 [-Wformat-truncation=]
 1277 |                         SAFEPRINTF3(str,"created or edited file: %s (%ld bytes, %u lines)"
      |                                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 1278 |                                 ,path, l, lines);
      |                                  ~~~~
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:453:74: note: in definition of macro ‘SAFEPRINTF3’
  453 | #define SAFEPRINTF3(dst,fmt,a1,a2,a3)           snprintf(dst,sizeof(dst),fmt,a1,a2,a3), TERMINATE(dst)
      |                                                                          ^~~
writemsg.cpp:1277:66: note: format string is defined here
 1277 |                         SAFEPRINTF3(str,"created or edited file: %s (%ld bytes, %u lines)"
      |                                                                  ^~
In file included from ../comio/comio.h:38,
                 from sbbs.h:93,
                 from writemsg.cpp:22:
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:453:57: note: ‘snprintf’ output between 44 and 4168 bytes into a destination of size 4097
  453 | #define SAFEPRINTF3(dst,fmt,a1,a2,a3)           snprintf(dst,sizeof(dst),fmt,a1,a2,a3), TERMINATE(dst)
      |                                                 ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
writemsg.cpp:1277:25: note: in expansion of macro ‘SAFEPRINTF3’
 1277 |                         SAFEPRINTF3(str,"created or edited file: %s (%ld bytes, %u lines)"
      |                         ^~~~~~~~~~~
writemsg.cpp: In member function ‘bool sbbs_t::copyfattach(uint, uint, const char*)’:
writemsg.cpp:1359:43: warning: ‘snprintf’ output may be truncated before the last format character [-Wformat-truncation=]
 1359 |                         SAFEPRINTF2(dest, "%s/%s", dir, tp);
      |                                           ^~~~~~~
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:452:82: note: in definition of macro ‘SAFEPRINTF2’
  452 | #define SAFEPRINTF2(dst,fmt,a1,a2)                      snprintf(dst,sizeof(dst),fmt,a1,a2), TERMINATE(dst)
      |                                                                                  ^~~
writemsg.cpp:1359:49: note: format string is defined here
 1359 |                         SAFEPRINTF2(dest, "%s/%s", dir, tp);
      |                                                 ^
In file included from ../comio/comio.h:38,
                 from sbbs.h:93,
                 from writemsg.cpp:22:
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:452:65: note: ‘snprintf’ output 2 or more bytes (assuming 4098) into a destination of size 4097
  452 | #define SAFEPRINTF2(dst,fmt,a1,a2)                      snprintf(dst,sizeof(dst),fmt,a1,a2), TERMINATE(dst)
      |                                                         ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
writemsg.cpp:1359:25: note: in expansion of macro ‘SAFEPRINTF2’
 1359 |                         SAFEPRINTF2(dest, "%s/%s", dir, tp);
      |                         ^~~~~~~~~~~
writemsg.cpp: In member function ‘bool sbbs_t::movemsg(smbmsg_t*, int)’:
writemsg.cpp:1782:33: warning: ‘%s’ directive output may be truncated writing up to 32 bytes into a region of size between 28 and 128 [-Wformat-truncation=]
 1782 |         SAFEPRINTF2(newsmb.file,"%s%s",cfg.sub[newsub]->data_dir,cfg.sub[newsub]->code);
      |                                 ^~~~~~
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:452:82: note: in definition of macro ‘SAFEPRINTF2’
  452 | #define SAFEPRINTF2(dst,fmt,a1,a2)                      snprintf(dst,sizeof(dst),fmt,a1,a2), TERMINATE(dst)
      |                                                                                  ^~~
writemsg.cpp:1782:36: note: format string is defined here
 1782 |         SAFEPRINTF2(newsmb.file,"%s%s",cfg.sub[newsub]->data_dir,cfg.sub[newsub]->code);
      |                                    ^~
In file included from ../comio/comio.h:38,
                 from sbbs.h:93,
                 from writemsg.cpp:22:
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:452:65: note: ‘snprintf’ output between 1 and 133 bytes into a destination of size 128
  452 | #define SAFEPRINTF2(dst,fmt,a1,a2)                      snprintf(dst,sizeof(dst),fmt,a1,a2), TERMINATE(dst)
      |                                                         ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~~~
writemsg.cpp:1782:9: note: in expansion of macro ‘SAFEPRINTF2’
 1782 |         SAFEPRINTF2(newsmb.file,"%s%s",cfg.sub[newsub]->data_dir,cfg.sub[newsub]->code);
      |         ^~~~~~~~~~~
Compiling xtrn.cpp
Compiling xtrn_sec.cpp
In file included from ../comio/comio.h:38,
                 from sbbs.h:93,
                 from xtrn_sec.cpp:22:
xtrn_sec.cpp: In member function ‘bool sbbs_t::exec_xtrn(uint, bool)’:
xtrn_sec.cpp:1410:32: warning: ‘%s’ directive output may be truncated writing up to 4096 bytes into a region of size 256 [-Wformat-truncation=]
 1410 |                 SAFEPRINTF(str,"%sMODUSER.DAT",dropdir);        /* if for some weird  */
      |                                ^~~~~~~~~~~~~~~ ~~~~~~~
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:451:82: note: in definition of macro ‘SAFEPRINTF’
  451 | #define SAFEPRINTF(dst,fmt,arg)                         snprintf(dst,sizeof(dst),fmt,arg), TERMINATE(dst)
      |                                                                                  ^~~
xtrn_sec.cpp:1410:33: note: format string is defined here
 1410 |                 SAFEPRINTF(str,"%sMODUSER.DAT",dropdir);        /* if for some weird  */
      |                                 ^~
In file included from ../comio/comio.h:38,
                 from sbbs.h:93,
                 from xtrn_sec.cpp:22:
/home/bbs/sbbs-git/src/sbbs3/../xpdev/gen_defs.h:451:65: note: ‘snprintf’ output between 12 and 4108 bytes into a destination of size 256
  451 | #define SAFEPRINTF(dst,fmt,arg)                         snprintf(dst,sizeof(dst),fmt,arg), TERMINATE(dst)
      |                                                         ~~~~~~~~^~~~~~~~~~~~~~~~~~~~~~~~~
xtrn_sec.cpp:1410:17: note: in expansion of macro ‘SAFEPRINTF’
 1410 |                 SAFEPRINTF(str,"%sMODUSER.DAT",dropdir);        /* if for some weird  */
      |                 ^~~~~~~~~~
Compiling ver.cpp
Compiling ssl.c