Tillbaka till svenska Fidonet
English   Information   Debug  
IC   0/2851
INTERNET   0/424
INTERUSER   0/3
IP_CONNECT   719
JAMNNTPD   0/233
JAMTLAND   0/47
KATTY_KORNER   0/41
LAN   0/16
LINUX-USER   0/19
LINUXHELP   0/1155
LINUX   0/22112
LINUX_BBS   0/957
mail   18.68
mail_fore_ok   249
MENSA   0/341
MODERATOR   0/102
MONTE   0/992
MOSCOW_OKLAHOMA   0/1245
MUFFIN   0/783
MUSIC   0/321
N203_STAT   930
N203_SYSCHAT   313
NET203   321
NET204   69
NET_DEV   0/10
NORD.ADMIN   0/101
NORD.CHAT   0/2572
NORD.FIDONET   189
NORD.HARDWARE   0/28
NORD.KULTUR   0/114
NORD.PROG   0/32
NORD.SOFTWARE   0/88
NORD.TEKNIK   0/58
NORD   0/453
OCCULT_CHAT   0/93
OS2BBS   0/787
OS2DOSBBS   0/580
OS2HW   0/42
OS2INET   0/37
OS2LAN   0/134
OS2PROG   0/36
OS2REXX   0/113
OS2USER-L   207
OS2   0/4786
OSDEBATE   0/18996
PASCAL   0/490
PERL   0/457
PHP   0/45
POINTS   0/405
POLITICS   0/29554
POL_INC   0/14731
PSION   103
R20_ADMIN   1123
R20_AMATORRADIO   0/2
R20_BEST_OF_FIDONET   13
R20_CHAT   0/893
R20_DEPP   0/3
R20_DEV   399
R20_ECHO2   1379
R20_ECHOPRES   0/35
R20_ESTAT   0/719
R20_FIDONETPROG...
...RAM.MYPOINT
  0/2
R20_FIDONETPROGRAM   0/22
R20_FIDONET   0/248
R20_FILEFIND   0/24
R20_FILEFOUND   0/22
R20_HIFI   0/3
R20_INFO2   3250
R20_INTERNET   0/12940
R20_INTRESSE   0/60
R20_INTR_KOM   0/99
R20_KANDIDAT.CHAT   42
R20_KANDIDAT   28
R20_KOM_DEV   112
R20_KONTROLL   0/13300
R20_KORSET   0/18
R20_LOKALTRAFIK   0/24
R20_MODERATOR   0/1852
R20_NC   76
R20_NET200   245
R20_NETWORK.OTH...
...ERNETS
  0/13
R20_OPERATIVSYS...
...TEM.LINUX
  0/44
R20_PROGRAMVAROR   0/1
R20_REC2NEC   534
R20_SFOSM   0/341
R20_SF   0/108
R20_SPRAK.ENGLISH   0/1
R20_SQUISH   107
R20_TEST   2
R20_WORST_OF_FIDONET   12
RAR   0/9
RA_MULTI   106
RA_UTIL   0/162
REGCON.EUR   0/2056
REGCON   0/13
SCIENCE   0/1206
SF   0/239
SHAREWARE_SUPPORT   0/5146
SHAREWRE   0/14
SIMPSONS   0/169
STATS_OLD1   0/2539.065
STATS_OLD2   0/2530
STATS_OLD3   0/2395.095
STATS_OLD4   0/1692.25
SURVIVOR   0/495
SYSOPS_CORNER   0/3
SYSOP   0/84
TAGLINES   0/112
TEAMOS2   0/4530
TECH   0/2617
TEST.444   0/105
TRAPDOOR   0/19
TREK   0/755
TUB   0/290
UFO   0/40
UNIX   0/1316
USA_EURLINK   0/102
USR_MODEMS   0/1
VATICAN   0/2740
VIETNAM_VETS   0/14
VIRUS   0/378
VIRUS_INFO   0/201
VISUAL_BASIC   0/473
WHITEHOUSE   0/5187
WIN2000   0/101
WIN32   0/30
WIN95   0/4289
WIN95_OLD1   0/70272
WINDOWS   0/1517
WWB_SYSOP   0/419
WWB_TECH   0/810
ZCC-PUBLIC   0/1
ZEC   4

 
4DOS   0/134
ABORTION   0/7
ALASKA_CHAT   0/506
ALLFIX_FILE   0/1313
ALLFIX_FILE_OLD1   0/7997
ALT_DOS   0/152
AMATEUR_RADIO   0/1039
AMIGASALE   0/14
AMIGA   0/331
AMIGA_INT   0/1
AMIGA_PROG   0/20
AMIGA_SYSOP   0/26
ANIME   0/15
ARGUS   0/924
ASCII_ART   0/340
ASIAN_LINK   0/651
ASTRONOMY   0/417
AUDIO   0/92
AUTOMOBILE_RACING   0/105
BABYLON5   0/17862
BAG   135
BATPOWER   0/361
BBBS.ENGLISH   0/382
BBSLAW   0/109
BBS_ADS   0/5290
BBS_INTERNET   0/507
BIBLE   0/3563
BINKD   0/1119
BINKLEY   0/215
BLUEWAVE   0/2173
CABLE_MODEMS   0/25
CBM   0/46
CDRECORD   0/66
CDROM   0/20
CLASSIC_COMPUTER   0/378
COMICS   0/15
CONSPRCY   0/899
COOKING   33431
COOKING_OLD1   0/24719
COOKING_OLD2   0/40862
COOKING_OLD3   0/37489
COOKING_OLD4   0/35496
COOKING_OLD5   9370
C_ECHO   0/189
C_PLUSPLUS   0/31
DIRTY_DOZEN   0/201
DOORGAMES   0/2065
DOS_INTERNET   0/196
duplikat   6002
ECHOLIST   0/18295
EC_SUPPORT   0/318
ELECTRONICS   0/359
ELEKTRONIK.GER   1534
ENET.LINGUISTIC   0/13
ENET.POLITICS   0/4
ENET.SOFT   0/11701
ENET.SYSOP   33946
ENET.TALKS   0/32
ENGLISH_TUTOR   0/2000
EVOLUTION   0/1335
FDECHO   0/217
FDN_ANNOUNCE   0/7068
FIDONEWS   24159
FIDONEWS_OLD1   0/49742
FIDONEWS_OLD2   0/35949
FIDONEWS_OLD3   0/30874
FIDONEWS_OLD4   0/37224
FIDO_SYSOP   12852
FIDO_UTIL   0/180
FILEFIND   0/209
FILEGATE   0/212
FILM   0/18
FNEWS_PUBLISH   4436
FN_SYSOP   41708
FN_SYSOP_OLD1   71952
FTP_FIDO   0/2
FTSC_PUBLIC   0/13615
FUNNY   0/4886
GENEALOGY.EUR   0/71
GET_INFO   105
GOLDED   0/408
HAM   0/16075
HOLYSMOKE   0/6791
HOT_SITES   0/1
HTMLEDIT   0/71
HUB203   466
HUB_100   264
HUB_400   39
HUMOR   0/29
Möte LINUX, 22112 texter
 lista första sista föregående nästa
Text 21065, 206 rader
Skriven 2021-03-03 11:15:20 av Andrew Alt (1:261/38.0)
  Kommentar till text 21064 av Maurice Kinal (1:153/7001)
Ärende: rmw compile warnings
============================
-=> Maurice Kinal wrote to Andrew Alt <=-

 MK> -={ 2021-03-01 17:54:39.246915930+00:00 }=-

 MK> Hey Andrew!

 MK> The above was done on my custom pure 64-bit nondistribution rootfs (aka
 MK> motorshed) using gcc-10.2.0/glibc-2.33 and friends.

 MK> Does this help any?

Hi, Maurice!

On Debian with gcc 8 I wasn't getting any warnings. So.. that reminds me I
might have
to make some changes to get rid of those warnings. :) I'm not really sure of
the best
way to fix those though. I have mixed feelings about using snprintf(). I have
redundant checks in place to check string lengths before concatenating, and I
don't
want strings to just get truncated. rmw is designed to exit (without a
segfault) with
a message if a buffer overflow is attempted. I think I should just change all
my
snprintf() statements to sprintf()... Which probably won't fix the warnings you

mentioned, lol ;)


I can get even more if I use CFLAGS="-Wformat -Wstringop-truncation
-Wformat-overflow=2 -pedantic -Wextra -Wformat-truncation=2" :)

Any suggestions? Probably if don't set fixed lengths in the structures and
instead
use calloc() at the time when I concatenate and write the final string, that
would
get rid of some of these annoying messages I get when I use the flags mentioned

above. Seems like that would require a lot of extra manual memory management
though.
Things are working fine right now so I'm reluctant to change the code until I
really
understand well how best to fix those warnings.

  CC       main.o
../../rmw/src/main.c: In function â ÿremove_to_wasteâ Ö:
../../rmw/src/main.c:422:101: warning: â ÿ%sâ Ö directive output between 0 and
4096 bytes may exceed minimum required size of 4095 [-Wformat-truncation=]
 tf (st_file_properties.waste_dest_name, sizeof
(st_file_properties.waste_dest_name), "%s%s",

       ^~

../../rmw/src/main.c:422:100: note: assuming directive output of 1 byte
 tf (st_file_properties.waste_dest_name, sizeof
(st_file_properties.waste_dest_name), "%s%s",

      ^~~~~~

../../rmw/src/main.c:422:9: note: â ÿsnprintfâ Ö output 1 or more bytes
(assuming 4098) into a destination of size 4097
         snprintf (st_file_properties.waste_dest_name, sizeof
(st_file_properties.waste_dest_name), "%s%s",

^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~
                   waste_curr->files, st_file_properties.base_name);
                   ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  CC       restore_rmw.o
../../rmw/src/restore_rmw.c: In function â ÿrestoreâ Ö:
../../rmw/src/restore_rmw.c:72:47: warning: â ÿ%sâ Ö directive output between 0
and 4096 bytes may exceed minimum required size of 4095 [-Wformat-truncation=]
     snprintf (file.info, sizeof (file.info), "%s%s%s%s", file.relative_path,
file.relative_info_path,
                                               ^~         ~~~~~~~~~~~~~~~~~~
../../rmw/src/restore_rmw.c:72:46: note: assuming directive output of 1 byte
     snprintf (file.info, sizeof (file.info), "%s%s%s%s", file.relative_path,
file.relative_info_path,
                                              ^~~~~~~~~~
../../rmw/src/restore_rmw.c:72:5: note: â ÿsnprintfâ Ö output 11 or more bytes
(assuming 4116) into a destination of size 4097
     snprintf (file.info, sizeof (file.info), "%s%s%s%s", file.relative_path,
file.relative_info_path,

^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~
              file.base_name, TRASHINFO_EXT);
              ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../rmw/src/restore_rmw.c: In function â ÿrestore_selectâ Ö:
../../rmw/src/restore_rmw.c:364:59: warning: â ÿ%sâ Ö directive output between
0 and 4096 bytes may exceed minimum required size of 4095
[-Wformat-truncation=]
           snprintf (recover_file, sizeof (recover_file), "%s%s",
waste_curr->files, item_name (items[i]));
                                                           ^~
../../rmw/src/restore_rmw.c:364:58: note: assuming directive output of 1 byte
           snprintf (recover_file, sizeof (recover_file), "%s%s",
waste_curr->files, item_name (items[i]));
                                                          ^~~~~~
../../rmw/src/restore_rmw.c:364:11: note: â ÿsnprintfâ Ö output 1 or more bytes
(assuming 4098) into a destination of size 4097
           snprintf (recover_file, sizeof (recover_file), "%s%s",
waste_curr->files, item_name (items[i]));

^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~
../../rmw/src/restore_rmw.c:244:38: warning: â ÿ%sâ Ö directive output between
0 and 4096 bytes may exceed minimum required size of 4095
[-Wformat-truncation=]
       snprintf (full_path, req_len, "%s%s", waste_curr->files, entry->d_name);
                                      ^~
  CC       config_rmw.o
../../rmw/src/config_rmw.c: In function â ÿparse_line_wasteâ Ö:
../../rmw/src/config_rmw.c:306:42: warning: â ÿ%sâ Ö directive output between 0
and 4096 bytes may exceed minimum required size of 4095 [-Wformat-truncation=]
   snprintf (waste_curr->files, req_len, "%s%s", waste_curr->parent,
"/files/");
                                          ^~
../../rmw/src/config_rmw.c:324:41: warning: â ÿ%sâ Ö directive output between 0
and 4096 bytes may exceed minimum required size of 4095 [-Wformat-truncation=]
   snprintf (waste_curr->info, req_len, "%s%s", waste_curr->parent, "/info/");
                                         ^~
  CC       parse_cli_options.o
  CC       strings_rmw.o
  CC       purging_rmw.o
../../rmw/src/purging_rmw.c: In function â ÿpurgeâ Ö:
../../rmw/src/purging_rmw.c:332:18: warning: â ÿ%sâ Ö directive output between
0 and 4096 bytes may exceed minimum required size of 4095
[-Wformat-truncation=]
                 "%s%s", waste_curr->info, st_trashinfo_dir_entry->d_name);
                  ^~
../../rmw/src/purging_rmw.c: In function â ÿorphan_maintâ Ö:
../../rmw/src/purging_rmw.c:562:46: warning: â ÿ%sâ Ö directive output between
0 and 4096 bytes may exceed minimum required size of 4095
[-Wformat-truncation=]
       snprintf (path_to_trashinfo, req_len, "%s%s%s", waste_curr->info,
                                              ^~
../../rmw/src/purging_rmw.c:562:45: note: assuming directive output of 1 byte
       snprintf (path_to_trashinfo, req_len, "%s%s%s", waste_curr->info,
                                             ^~~~~~~~
../../rmw/src/purging_rmw.c:574:57: warning: â ÿ%sâ Ö directive output between
0 and 4096 bytes may exceed minimum required size of 4095
[-Wformat-truncation=]
       snprintf (st_file_properties.real_path, req_len, "%s%s%s",
                                                         ^~
../../rmw/src/purging_rmw.c:574:56: note: assuming directive output of 1 byte
       snprintf (st_file_properties.real_path, req_len, "%s%s%s",
                                                        ^~~~~~~~
  CC       messages_rmw.o
  CC       time_rmw.o
  CC       trashinfo_rmw.o
../../rmw/src/trashinfo_rmw.c:31:36: warning: initializer element is not a
constant expression [-Wpedantic]
 const int LEN_MAX_TRASHINFO_LINE = (PATH_MAX * 3 + strlen ("Path=") + 1);
                                    ^
../../rmw/src/trashinfo_rmw.c: In function â ÿcreate_trashinfoâ Ö:
../../rmw/src/trashinfo_rmw.c:47:40: warning: â ÿ%sâ Ö directive output between
0 and 4096 bytes may exceed minimum required size of 4095
[-Wformat-truncation=]
   snprintf (final_info_dest, req_len, "%s%s", waste_curr->info,
st_f_props->base_name);
                                        ^~
../../rmw/src/trashinfo_rmw.c:47:39: note: assuming directive output of 1 byte
   snprintf (final_info_dest, req_len, "%s%s", waste_curr->info,
st_f_props->base_name);
                                       ^~~~~~
  CC       utils_rmw.o
../../rmw/src/utils_rmw.c: In function â ÿunescape_urlâ Ö:
../../rmw/src/utils_rmw.c:317:35: warning: format â ÿ%hhxâ Ö expects argument
of type â ÿunsigned char *â Ö, but argument 3 has type â ÿchar *â Ö [-Wformat=]
       sscanf (str + pos_str, "%2hhx", dest + pos_dest);
                               ~~~~^   ~~~~~~~~~~~~~~~
                               %2hhx
../../rmw/src/utils_rmw.c: In function â ÿhuman_readable_sizeâ Ö:
../../rmw/src/utils_rmw.c:143:44: warning: â ÿ Bâ Ö directive output may be
truncated writing 2 bytes into a region of size between 0 and 19
[-Wformat-truncation=]
     snprintf (buffer, sizeof (buffer), "%ld B", (long) size);
                                            ^~
../../rmw/src/utils_rmw.c:143:5: note: â ÿsnprintfâ Ö output between 4 and 23
bytes into a destination of size 20
     snprintf (buffer, sizeof (buffer), "%ld B", (long) size);
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
../../rmw/src/utils_rmw.c:140:44: warning: â ÿ.â Ö directive output may be
truncated writing 1 byte into a region of size between 0 and 19
[-Wformat-truncation=]
     snprintf (buffer, sizeof (buffer), "%ld.%d %ciB", (long) size,
                                            ^
../../rmw/src/utils_rmw.c:140:5: note: â ÿsnprintfâ Ö output between 8 and 37
bytes into a destination of size 20
     snprintf (buffer, sizeof (buffer), "%ld.%d %ciB", (long) size,
     ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
               (remainder * 10) / 1024, prefix[power]);
               ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
  CC       bst.o
  CCLD     ../rmw

--
-Andy


... A few feathers short of a whole duck.
-+- MultiMail/Linux v0.52

--- BBBS/Li6 v4.10 Toy-5
 * Origin: Prism bbs (1:261/38)