Demo Discussion
Forum Config Examples Contributions Vulnerabilities
  Discussion forum about ELOG, Page 766 of 807  Not logged in ELOG logo
ID Date Icon Author Author Emaildown Category OS ELOG Version Subject
  68843   Wed Sep 12 15:57:31 2018 Reply Allen TuttleAllenEmail@wavecable.comBug reportLinux3.1.3Re: Compile issues on Fedora withe current elog source
A quick test suggests I can't just replace sprintf with snprintf.
Original error:
src/elogd.c:4503:4: note: ‘sprintf’ output between 1 and 542 bytes into a destination of size 256 [-Wformat-overflow=]
    sprintf(file_name, "%s%s%s", lbs->data_dir, lbs->el_index[index].subdir, lbs->el_index[index].file_name);
                          ^~

New error:
src/elogd.c:4503:24: warning: passing argument 2 of ‘snprintf’ makes integer from pointer without a cast [-Wint-conversion]
    snprintf(file_name, "%s%s%s", lbs->data_dir, lbs->el_index[index].subdir, lbs->el_index[index].file_name);
                        ^~~~~~~~
In file included from src/elogd.h:42:0,
                 from src/elogd.c:38:
/usr/include/stdio.h:340:12: note: expected ‘size_t {aka long unsigned int}’ but argument is of type ‘char *’
 extern int snprintf (char *__restrict __s, size_t __maxlen,

Allen Tuttle wrote:

I would like to try the new code, I don't see it on elog/download/tar/.
Do you keep updates elsewhere like on get or sourceforge?

Stefan Ritt wrote:

This warning is triggered by the use of the sprintf() funciton, which can write beyond the boundary of the destination string. I replaced it by snprintf(), which should make the compiler happy. Code is committed. Unfortuantely I have no FC27 here, so if there is still some waring with the current code, please post the full warning list here.

Stefan

 

 

  68845   Thu Sep 13 06:12:59 2018 Reply Allen TuttleAllenEmail@wavecable.comBug reportLinux3.1.3Re: Compile issues on Fedora withe current elog source

Latest compile effort on Fedora 28 using the bitbucket source downloaded at 21:12 PDT:

make
gcc -O3 -funroll-loops -fomit-frame-pointer -W -Wall -Wno-deprecated-declarations -Imxml -DHAVE_SSL -c -o mxml.o mxml/mxml.c
mxml/mxml.c: In function ‘mxml_write_attribute.part.1’:
mxml/mxml.c:515:25: warning: ‘%s’ directive writing up to 4095 bytes into a region of size between 4094 and 8189 [-Wformat-overflow=]
    sprintf(line, " %s=\"%s\"", name_enc, val_enc);
                         ^~               ~~~~~~~
mxml/mxml.c:515:4: note: ‘sprintf’ output between 5 and 8195 bytes into a destination of size 8192
    sprintf(line, " %s=\"%s\"", name_enc, val_enc);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
mxml/mxml.c: In function ‘mxml_parse_entity’:
mxml/mxml.c:1932:38: warning: ‘sprintf’ may write a terminating nul past the end of the destination [-Wformat-overflow=]
             sprintf(filename, "%s%c%s", directoryname, DIR_SEPARATOR, entity_reference_name[i]);
                                      ^
mxml/mxml.c:1932:13: note: ‘sprintf’ output 2 or more bytes (assuming 4097) into a destination of size 4096
             sprintf(filename, "%s%c%s", directoryname, DIR_SEPARATOR, entity_reference_name[i]);
             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gcc -O3 -funroll-loops -fomit-frame-pointer -W -Wall -Wno-deprecated-declarations -Imxml -DHAVE_SSL -w -c -o crypt.o src/crypt.c
gcc -O3 -funroll-loops -fomit-frame-pointer -W -Wall -Wno-deprecated-declarations -Imxml -DHAVE_SSL -w -c -o regex.o src/regex.c
gcc -O3 -funroll-loops -fomit-frame-pointer -W -Wall -Wno-deprecated-declarations -Imxml -DHAVE_SSL -c -o strlcpy.o mxml/strlcpy.c
gcc -O3 -funroll-loops -fomit-frame-pointer -W -Wall -Wno-deprecated-declarations -Imxml -DHAVE_SSL -o elog src/elog.c mxml.o crypt.o regex.o strlcpy.o -lssl
src/elog.c: In function ‘retrieve_elog’:
src/elog.c:524:13: warning: ‘strncpy’ specified bound 256 equals destination size [-Wstringop-truncation]
             strncpy(str, strstr(response, "Location:") + 10, sizeof(str));
             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elog.c: In function ‘submit_elog’:
src/elog.c:982:10: warning: ‘strncpy’ specified bound 80 equals destination size [-Wstringop-truncation]
          strncpy(str, strstr(response, "Error: Attribute") + 20, sizeof(str));
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elog.c:977:10: warning: ‘strncpy’ specified bound 80 equals destination size [-Wstringop-truncation]
          strncpy(str, strstr(response, "Error: Attribute") + 27, sizeof(str));
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elog.c:956:13: warning: ‘strncpy’ specified bound 80 equals destination size [-Wstringop-truncation]
             strncpy(str, strstr(response, "Location:") + 10, sizeof(str));
             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gcc -O3 -funroll-loops -fomit-frame-pointer -W -Wall -Wno-deprecated-declarations -Imxml -DHAVE_SSL -w -c -o auth.o src/auth.c
gcc -O3 -funroll-loops -fomit-frame-pointer -W -Wall -Wno-deprecated-declarations -Imxml -DHAVE_SSL -o elogd src/elogd.c auth.o mxml.o crypt.o regex.o strlcpy.o -lssl
src/elogd.c: In function ‘cleanup’:
src/elogd.c:30641:48: warning: ‘%s’ directive writing up to 255 bytes into a region of size 233 [-Wformat-overflow=]
          sprintf(str, "Cannot remove pidfile \"%s\"\n", pidfile);
                                                ^~       ~~~~~~~
src/elogd.c:30641:10: note: ‘sprintf’ output between 26 and 281 bytes into a destination of size 256
          sprintf(str, "Cannot remove pidfile \"%s\"\n", pidfile);
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c: In function ‘split_url’:
src/elogd.c:2490:4: warning: ‘strncpy’ specified bound 256 equals destination size [-Wstringop-truncation]
    strncpy(str, p, sizeof(str));
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c: In function ‘getcfg’:
src/elogd.c:3091:28: warning: ‘%s’ directive writing up to 255 bytes into a region of size 249 [-Wformat-overflow=]
src/elogd.c:2753:14:
       return _topgroup;
              ~~~~~~~~~      
src/elogd.c:3091:28:
       sprintf(str, "global %s", getcfg_topgroup());
                            ^~
src/elogd.c:3091:7: note: ‘sprintf’ output between 8 and 263 bytes into a destination of size 256
       sprintf(str, "global %s", getcfg_topgroup());
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c: In function ‘getcfg.constprop’:
src/elogd.c:3091:28: warning: ‘%s’ directive writing up to 255 bytes into a region of size 249 [-Wformat-overflow=]
src/elogd.c:2753:14:
       return _topgroup;
              ~~~~~~~~~      
src/elogd.c:3091:28:
       sprintf(str, "global %s", getcfg_topgroup());
                            ^~
src/elogd.c:3091:7: note: ‘sprintf’ output between 8 and 263 bytes into a destination of size 256
       sprintf(str, "global %s", getcfg_topgroup());
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c: In function ‘ss_file_find’:
src/elogd.c:3775:10: warning: ‘strncpy’ output truncated before terminating nul copying as many bytes from a string as its length [-Wstringop-truncation]
          strncpy(*plist + (i * MAX_PATH_LENGTH), dp->d_name, strlen(dp->d_name));
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c: In function ‘html_allowed’:
src/elogd.c:3091:28: warning: ‘%s’ directive writing up to 255 bytes into a region of size 249 [-Wformat-overflow=]
src/elogd.c:2753:14:
       return _topgroup;
              ~~~~~~~~~      
src/elogd.c:3091:28:
       sprintf(str, "global %s", getcfg_topgroup());
                            ^~
src/elogd.c:3091:7: note: ‘sprintf’ output between 8 and 263 bytes into a destination of size 256
       sprintf(str, "global %s", getcfg_topgroup());
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c: In function ‘create_thumbnail.part.38’:
src/elogd.c:24226:41: warning: ‘%s’ directive writing up to 511 bytes into a region of size 243 [-Wformat-overflow=]
       sprintf(thumb_size, " -thumbnail '%s'", str);
                                         ^~    ~~~
src/elogd.c:24226:7: note: ‘sprintf’ output between 15 and 526 bytes into a destination of size 256
       sprintf(thumb_size, " -thumbnail '%s'", str);
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c:24253:40: warning: ‘ '’ directive output may be truncated writing 2 bytes into a region of size between 1 and 511 [-Wformat-truncation=]
       snprintf(cmd, sizeof(cmd), "%s %s '%s[0-7]'%s '%s'", _convert_cmd, thumb_options, file_name, thumb_size, str);
                                        ^~
src/elogd.c:24253:7: note: ‘snprintf’ output 13 or more bytes (assuming 1289) into a destination of size 512
       snprintf(cmd, sizeof(cmd), "%s %s '%s[0-7]'%s '%s'", _convert_cmd, thumb_options, file_name, thumb_size, str);
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c:24255:40: warning: ‘ '’ directive output may be truncated writing 2 bytes into a region of size between 1 and 511 [-Wformat-truncation=]
       snprintf(cmd, sizeof(cmd), "%s %s '%s'%s '%s'", _convert_cmd, thumb_options, file_name, thumb_size, str);
                                        ^~
src/elogd.c:24255:7: note: ‘snprintf’ output 8 or more bytes (assuming 1284) into a destination of size 512
       snprintf(cmd, sizeof(cmd), "%s %s '%s'%s '%s'", _convert_cmd, thumb_options, file_name, thumb_size, str);
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c:24263:40: warning: ‘%s’ directive output may be truncated writing up to 511 bytes into a region of size 505 [-Wformat-truncation=]
    snprintf(str, sizeof(str), "SHELL \"%s\"", cmd);
                                        ^~     ~~~
src/elogd.c:24263:4: note: ‘snprintf’ output between 9 and 520 bytes into a destination of size 512
    snprintf(str, sizeof(str), "SHELL \"%s\"", cmd);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c: In function ‘rsputs_elcode’:
src/elogd.c:6618:71: warning: ‘%s’ directive output may be truncated writing up to 999 bytes into a region of size 993 [-Wformat-truncation=]
                            snprintf(hattrib, sizeof(hattrib), "http://%s", attrib);
                                                                       ^~   ~~~~~~
src/elogd.c:6618:28: note: ‘snprintf’ output between 8 and 1007 bytes into a destination of size 1000
                            snprintf(hattrib, sizeof(hattrib), "http://%s", attrib);
                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c:6616:72: warning: ‘%s’ directive output may be truncated writing up to 999 bytes into a region of size 992 [-Wformat-truncation=]
                            snprintf(hattrib, sizeof(hattrib), "https://%s", attrib);
                                                                        ^~   ~~~~~~
src/elogd.c:6616:28: note: ‘snprintf’ output between 9 and 1008 bytes into a destination of size 1000
                            snprintf(hattrib, sizeof(hattrib), "https://%s", attrib);
                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c:6568:53: warning: ‘%s’ directive writing up to 999 bytes into a region of size 993 [-Wformat-overflow=]
                            sprintf(hattrib, "http://%s", attrib);
                                                     ^~   ~~~~~~
src/elogd.c:6568:28: note: ‘sprintf’ output between 8 and 1007 bytes into a destination of size 1000
                            sprintf(hattrib, "http://%s", attrib);
                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c:6566:54: warning: ‘%s’ directive writing up to 999 bytes into a region of size 992 [-Wformat-overflow=]
                            sprintf(hattrib, "https://%s", attrib);
                                                      ^~   ~~~~~~
src/elogd.c:6566:28: note: ‘sprintf’ output between 9 and 1008 bytes into a destination of size 1000
                            sprintf(hattrib, "https://%s", attrib);
                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c: In function ‘el_submit_attachment’:
src/elogd.c:4696:55: warning: ‘%s’ directive writing up to 255 bytes into a region of size 226 [-Wformat-overflow=]
          sprintf(str, "Cannot write attachment file \"%s\"", file_name);
                                                       ^~     ~~~~~~~~~
src/elogd.c:4696:10: note: ‘sprintf’ output between 32 and 287 bytes into a destination of size 256
          sprintf(str, "Cannot write attachment file \"%s\"", file_name);
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c: In function ‘attrib_from_param’:
src/elogd.c:9364:30: warning: ‘%d’ directive writing between 1 and 3 bytes into a region of size between 0 and 1499 [-Wformat-overflow=]
             sprintf(str, "%s_%d", ua, j);
                              ^~
src/elogd.c:9364:26: note: directive argument in the range [0, 100]
             sprintf(str, "%s_%d", ua, j);
                          ^~~~~~~
src/elogd.c:9364:13: note: ‘sprintf’ output between 3 and 1504 bytes into a destination of size 1500
             sprintf(str, "%s_%d", ua, j);
             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c: In function ‘el_retrieve’:
src/elogd.c:4503:46: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 1 and 256 [-Wformat-truncation=]
    snprintf(file_name, sizeof(file_name), "%s%s%s", lbs->data_dir, lbs->el_index[index].subdir, lbs->el_index[index].file_name);
                                              ^~
src/elogd.c:4503:4: note: ‘snprintf’ output between 1 and 542 bytes into a destination of size 256
    snprintf(file_name, sizeof(file_name), "%s%s%s", lbs->data_dir, lbs->el_index[index].subdir, lbs->el_index[index].file_name);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c: In function ‘el_retrieve_attachment.part.32’:
src/elogd.c:4764:46: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 1 and 256 [-Wformat-truncation=]
    snprintf(file_name, sizeof(file_name), "%s%s%s", lbs->data_dir, lbs->el_index[index].subdir, lbs->el_index[index].file_name);
                                              ^~
src/elogd.c:4764:4: note: ‘snprintf’ output between 1 and 542 bytes into a destination of size 256
    snprintf(file_name, sizeof(file_name), "%s%s%s", lbs->data_dir, lbs->el_index[index].subdir, lbs->el_index[index].file_name);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c: In function ‘el_submit’:
src/elogd.c:4894:49: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 1 and 256 [-Wformat-truncation=]
       snprintf(file_name, sizeof(file_name), "%s%s%s", lbs->data_dir, lbs->el_index[index].subdir, lbs->el_index[index].file_name);
                                                 ^~
src/elogd.c:4894:7: note: ‘snprintf’ output between 1 and 542 bytes into a destination of size 256
       snprintf(file_name, sizeof(file_name), "%s%s%s", lbs->data_dir, lbs->el_index[index].subdir, lbs->el_index[index].file_name);
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c: In function ‘el_retrieve.constprop’:
src/elogd.c:4503:46: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 1 and 256 [-Wformat-truncation=]
    snprintf(file_name, sizeof(file_name), "%s%s%s", lbs->data_dir, lbs->el_index[index].subdir, lbs->el_index[index].file_name);
                                              ^~
src/elogd.c:4503:4: note: ‘snprintf’ output between 1 and 542 bytes into a destination of size 256
    snprintf(file_name, sizeof(file_name), "%s%s%s", lbs->data_dir, lbs->el_index[index].subdir, lbs->el_index[index].file_name);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c: In function ‘el_retrieve.constprop’:
src/elogd.c:4503:46: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 1 and 256 [-Wformat-truncation=]
    snprintf(file_name, sizeof(file_name), "%s%s%s", lbs->data_dir, lbs->el_index[index].subdir, lbs->el_index[index].file_name);
                                              ^~
src/elogd.c:4503:4: note: ‘snprintf’ output between 1 and 542 bytes into a destination of size 256
    snprintf(file_name, sizeof(file_name), "%s%s%s", lbs->data_dir, lbs->el_index[index].subdir, lbs->el_index[index].file_name);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c: In function ‘show_download_page’:
src/elogd.c:14786:52: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 1 and 256 [-Wformat-truncation=]
          snprintf(file_name, sizeof(file_name), "%s%s%s", lbs->data_dir, lbs->el_index[index].subdir, lbs->el_index[index].file_name);
                                                    ^~
src/elogd.c:14786:10: note: ‘snprintf’ output between 1 and 542 bytes into a destination of size 256
          snprintf(file_name, sizeof(file_name), "%s%s%s", lbs->data_dir, lbs->el_index[index].subdir, lbs->el_index[index].file_name);
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c: In function ‘show_page_filters’:
src/elogd.c:19317:45: warning: ‘$’ directive writing 1 byte into a region of size between 0 and 1499 [-Wformat-overflow=]
                   sprintf(option_whole, "^%s$", option);
                                             ^
src/elogd.c:19317:19: note: ‘sprintf’ output between 3 and 1502 bytes into a destination of size 1500
                   sprintf(option_whole, "^%s$", option);
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c: In function ‘is_inline_attachment’:
src/elogd.c:24205:31: warning: ‘%s’ directive writing up to 255 bytes into a region of size between 237 and 247 [-Wformat-overflow=]
       sprintf(str, "cid:att%d@%s", i, domain);
                               ^~      ~~~~~~
src/elogd.c:24205:7: note: ‘sprintf’ output between 10 and 275 bytes into a destination of size 256
       sprintf(str, "cid:att%d@%s", i, domain);
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c: In function ‘load_password_file’:
src/elogd.c:25739:58: warning: ‘%s’ directive writing up to 255 bytes into a region of size 226 [-Wformat-overflow=]
             sprintf(str, "Cannot convert password file \"%s\"", file_name);
                                                          ^~     ~~~~~~~~~
src/elogd.c:25739:13: note: ‘sprintf’ output between 32 and 287 bytes into a destination of size 256
             sprintf(str, "Cannot convert password file \"%s\"", file_name);
             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c:25728:70: warning: ‘%s’ directive writing up to 255 bytes into a region of size 211 [-Wformat-overflow=]
          sprintf(str, "Cannot access write protected password file \"%s\"", file_name);
                                                                      ^~     ~~~~~~~~~
src/elogd.c:25728:10: note: ‘sprintf’ output between 47 and 302 bytes into a destination of size 256
          sprintf(str, "Cannot access write protected password file \"%s\"", file_name);
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c:25719:54: warning: ‘%s’ directive writing up to 255 bytes into a region of size 227 [-Wformat-overflow=]
          sprintf(str, "Cannot access password file \"%s\"", file_name);
                                                      ^~     ~~~~~~~~~
src/elogd.c:25719:10: note: ‘sprintf’ output between 31 and 286 bytes into a destination of size 256
          sprintf(str, "Cannot access password file \"%s\"", file_name);
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c:25699:43: warning: ‘%s’ directive writing up to 255 bytes into a region of size 238 [-Wformat-overflow=]
          sprintf(str, "Cannot open file \"%s\"", file_name);
                                           ^~     ~~~~~~~~~
src/elogd.c:25699:10: note: ‘sprintf’ output between 20 and 275 bytes into a destination of size 256
          sprintf(str, "Cannot open file \"%s\"", file_name);
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c: In function ‘rename_logbook’:
src/elogd.c:13118:27: warning: ‘%s’ directive writing up to 255 bytes into a region of size between 1 and 256 [-Wformat-overflow=]
       sprintf(old_dir, "%s%s", lb_dir, lbs->name);
                           ^~
src/elogd.c:13118:7: note: ‘sprintf’ output between 1 and 511 bytes into a destination of size 256
       sprintf(old_dir, "%s%s", lb_dir, lbs->name);
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c: In function ‘execute_shell.part.42’:
src/elogd.c:22772:26: warning: ‘%s’ directive writing up to 9999 bytes into a region of size 1493 [-Wformat-overflow=]
    sprintf(str, "SHELL \"%s\"", shell_cmd);
                          ^~     ~~~~~~~~~
src/elogd.c:22772:4: note: ‘sprintf’ output between 9 and 10008 bytes into a destination of size 1500
    sprintf(str, "SHELL \"%s\"", shell_cmd);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c: In function ‘el_delete_message’:
src/elogd.c:5242:46: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size between 1 and 256 [-Wformat-truncation=]
    snprintf(file_name, sizeof(file_name), "%s%s%s", lbs->data_dir, lbs->el_index[index].subdir, lbs->el_index[index].file_name);
                                              ^~
src/elogd.c:5242:4: note: ‘snprintf’ output between 1 and 542 bytes into a destination of size 256
    snprintf(file_name, sizeof(file_name), "%s%s%s", lbs->data_dir, lbs->el_index[index].subdir, lbs->el_index[index].file_name);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c: In function ‘copy_to’:
src/elogd.c:24081:28: warning: ‘%s’ directive writing up to 255 bytes into a region of size 252 [-Wformat-overflow=]
          sprintf(str, "?lb=%s\"", lbs->name_enc);
                            ^~
src/elogd.c:24081:10: note: ‘sprintf’ output between 6 and 261 bytes into a destination of size 256
          sprintf(str, "?lb=%s\"", lbs->name_enc);
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c:24085:28: warning: ‘%s’ directive writing up to 255 bytes into a region of size 252 [-Wformat-overflow=]
          sprintf(str, "?lb=%s&", lbs->name_enc);
                            ^~
src/elogd.c:24085:10: note: ‘sprintf’ output between 6 and 261 bytes into a destination of size 256
          sprintf(str, "?lb=%s&", lbs->name_enc);
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c:24085:28: warning: ‘%s’ directive writing up to 255 bytes into a region of size 252 [-Wformat-overflow=]
          sprintf(str, "?lb=%s&", lbs->name_enc);
                            ^~
src/elogd.c:24085:10: note: ‘sprintf’ output between 6 and 261 bytes into a destination of size 256
          sprintf(str, "?lb=%s&", lbs->name_enc);
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c: In function ‘show_logbook_new’:
src/elogd.c:14689:24: warning: ‘%s’ directive writing up to 255 bytes into a region of size 253 [-Wformat-overflow=]
       sprintf(str, "../%s/?cmd=Config", lbn);
                        ^~               ~~~
src/elogd.c:14689:7: note: ‘sprintf’ output between 16 and 271 bytes into a destination of size 256
       sprintf(str, "../%s/?cmd=Config", lbn);
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c: In function ‘display_line’:
src/elogd.c:17743:37: warning: ‘%s’ directive writing up to 1499 bytes into a region of size between 1412 and 1491 [-Wformat-overflow=]
          sprintf(str, "%s\" style=\"%s", rowstyle, display);
                                     ^~             ~~~~~~~
src/elogd.c:17743:10: note: ‘sprintf’ output between 10 and 1588 bytes into a destination of size 1500
          sprintf(str, "%s\" style=\"%s", rowstyle, display);
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c:17841:33: warning: ‘%s’ directive writing up to 255 bytes into a region of size 253 [-Wformat-overflow=]
                sprintf(ref, "../%s/%s/%s", lbs->name, str, attachment[i] + 14);
                                 ^~
src/elogd.c:17841:16: note: ‘sprintf’ output 6 or more bytes (assuming 1760) into a destination of size 256
                sprintf(ref, "../%s/%s/%s", lbs->name, str, attachment[i] + 14);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c:17976:46: warning: ‘%s’ directive writing up to 1499 bytes into a region of size between 1412 and 1491 [-Wformat-overflow=]
                   sprintf(str, "%s\" style=\"%s", rowstyle, display);
                                              ^~             ~~~~~~~
src/elogd.c:17976:19: note: ‘sprintf’ output between 10 and 1588 bytes into a destination of size 1500
                   sprintf(str, "%s\" style=\"%s", rowstyle, display);
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c:18201:36: warning: ‘%s’ directive writing up to 255 bytes into a region of size 253 [-Wformat-overflow=]
                   sprintf(ref, "../%s/%s/%s", lbs->name, str, attachment[i] + 14);
                                    ^~
src/elogd.c:18201:19: note: ‘sprintf’ output 6 or more bytes (assuming 1760) into a destination of size 256
                   sprintf(ref, "../%s/%s/%s", lbs->name, str, attachment[i] + 14);
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c:18323:33: warning: ‘%s’ directive writing up to 255 bytes into a region of size 253 [-Wformat-overflow=]
                sprintf(ref, "../%s/%s/%s", lbs->name, str, attachment[i] + 14);
                                 ^~
src/elogd.c:18323:16: note: ‘sprintf’ output 6 or more bytes (assuming 1760) into a destination of size 256
                sprintf(ref, "../%s/%s/%s", lbs->name, str, attachment[i] + 14);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c:18381:30: warning: ‘%s’ directive writing up to 255 bytes into a region of size 253 [-Wformat-overflow=]
             sprintf(ref, "../%s/%s/%s", lbs->name, str, attachment[index] + 14);
                              ^~
src/elogd.c:18381:13: note: ‘sprintf’ output 6 or more bytes (assuming 1760) into a destination of size 256
             sprintf(ref, "../%s/%s/%s", lbs->name, str, attachment[index] + 14);
             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c: In function ‘show_rss_feed’:
src/elogd.c:19817:31: warning: ‘%s’ directive writing up to 255 bytes into a region of size 249 [-Wformat-overflow=]
          sprintf(url, "http://%s", host_name);
                               ^~   ~~~~~~~~~
src/elogd.c:19817:10: note: ‘sprintf’ output between 8 and 263 bytes into a destination of size 256
          sprintf(url, "http://%s", host_name);
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c:19815:32: warning: ‘%s’ directive writing up to 255 bytes into a region of size 248 [-Wformat-overflow=]
          sprintf(url, "https://%s", host_name);
                                ^~   ~~~~~~~~~
src/elogd.c:19815:10: note: ‘sprintf’ output between 9 and 264 bytes into a destination of size 256
          sprintf(url, "https://%s", host_name);
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c:19902:41: warning: ‘%s’ directive output may be truncated writing up to 255 bytes into a region of size 79 [-Wformat-truncation=]
       snprintf(date, sizeof(date) - 1, "%s %+03d%02d", str, (int) (offset / 3600), (int) ((abs((int) offset)
                                         ^~             ~~~
src/elogd.c:19902:40: note: directive argument in the range [-596523, 596523]
       snprintf(date, sizeof(date) - 1, "%s %+03d%02d", str, (int) (offset / 3600), (int) ((abs((int) offset)
                                        ^~~~~~~~~~~~~~
src/elogd.c:19902:40: note: directive argument in the range [0, 59]
src/elogd.c:19902:7: note: ‘snprintf’ output between 7 and 266 bytes into a destination of size 79
       snprintf(date, sizeof(date) - 1, "%s %+03d%02d", str, (int) (offset / 3600), (int) ((abs((int) offset)
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                                                                            / 60) % 60));
                                                                                            ~~~~~~~~~~~~
src/elogd.c: In function ‘show_find_form’:
src/elogd.c:12538:40: warning: ‘$’ directive writing 1 byte into a region of size between 0 and 1499 [-Wformat-overflow=]
                sprintf(whole_attr, "^%s$", str);
                                        ^
src/elogd.c:12538:16: note: ‘sprintf’ output between 3 and 1502 bytes into a destination of size 1500
                sprintf(whole_attr, "^%s$", str);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c:12496:43: warning: ‘%s’ directive writing up to 1499 bytes into a region of size 1487 [-Wformat-overflow=]
                sprintf(str, "Icon comment %s", option);
                                           ^~   ~~~~~~
src/elogd.c:12496:16: note: ‘sprintf’ output between 14 and 1513 bytes into a destination of size 1500
                sprintf(str, "Icon comment %s", option);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c: In function ‘submit_message’:
src/elogd.c:16089:7: warning: ‘strncpy’ specified bound 256 equals destination size [-Wstringop-truncation]
       strncpy(str, strstr(response, "Error: Attribute") + 20, sizeof(str));
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c: In function ‘submit_config’:
src/elogd.c:16368:7: warning: ‘strncpy’ specified bound 256 equals destination size [-Wstringop-truncation]
       strncpy(str, strstr(response, "Error: Attribute") + 20, sizeof(str));
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c: In function ‘synchronize_logbook’:
src/elogd.c:16859:45: warning: ‘%s’ directive writing up to 255 bytes into a region of size 244 [-Wformat-overflow=]
             sprintf(loc_ref, "<a href=\".\">%s</a>", lbs->name);
                                             ^~
src/elogd.c:16859:13: note: ‘sprintf’ output between 17 and 272 bytes into a destination of size 256
             sprintf(loc_ref, "<a href=\".\">%s</a>", lbs->name);
             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c:16857:41: warning: ‘%s’ directive writing up to 255 bytes into a region of size 247 [-Wformat-overflow=]
             sprintf(loc_ref, "<a href=\"%s/\">%s</a>", lbs->name_enc, lbs->name);
                                         ^~
src/elogd.c:16857:13: note: ‘sprintf’ output between 17 and 527 bytes into a destination of size 256
             sprintf(loc_ref, "<a href=\"%s/\">%s</a>", lbs->name_enc, lbs->name);
             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c:16855:44: warning: ‘%s’ directive writing up to 255 bytes into a region of size 244 [-Wformat-overflow=]
             sprintf(loc_ref, "<a href=\"../%s/\">%s</a>", lbs->name_enc, lbs->name);
                                            ^~
src/elogd.c:16855:13: note: ‘sprintf’ output between 20 and 530 bytes into a destination of size 256
             sprintf(loc_ref, "<a href=\"../%s/\">%s</a>", lbs->name_enc, lbs->name);
             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c:17181:50: warning: ‘%s’ directive writing up to 255 bytes into a region of size 247 [-Wformat-overflow=]
                      sprintf(loc_ref, "<a href=\"%s/%d\">%s</a>", lbs->name_enc, message_id, loc("local"));
                                                  ^~
src/elogd.c:17181:22: note: ‘sprintf’ output 18 or more bytes (assuming 273) into a destination of size 256
                      sprintf(loc_ref, "<a href=\"%s/%d\">%s</a>", lbs->name_enc, message_id, loc("local"));
                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c:17179:53: warning: ‘%s’ directive writing up to 255 bytes into a region of size 244 [-Wformat-overflow=]
                      sprintf(loc_ref, "<a href=\"../%s/%d\">%s</a>", lbs->name_enc, message_id, loc("local"));
                                                     ^~
src/elogd.c:17179:22: note: ‘sprintf’ output 21 or more bytes (assuming 276) into a destination of size 256
                      sprintf(loc_ref, "<a href=\"../%s/%d\">%s</a>", lbs->name_enc, message_id, loc("local"));
                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c:17185:54: warning: ‘%s’ directive writing up to 1999 bytes into a region of size 240 [-Wformat-overflow=]
                   sprintf(rem_ref, "<a href=\"http://%s%d\">%s</a>", str, message_id, loc("remote"));
                                                      ^~              ~~~
src/elogd.c:17185:19: note: ‘sprintf’ output 24 or more bytes (assuming 2023) into a destination of size 256
                   sprintf(rem_ref, "<a href=\"http://%s%d\">%s</a>", str, message_id, loc("remote"));
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c:17256:50: warning: ‘%s’ directive writing up to 255 bytes into a region of size 247 [-Wformat-overflow=]
                      sprintf(loc_ref, "<a href=\"%s/%d\">%s</a>", lbs->name_enc, message_id,
                                                  ^~
src/elogd.c:17256:22: note: ‘sprintf’ output 18 or more bytes (assuming 273) into a destination of size 256
                      sprintf(loc_ref, "<a href=\"%s/%d\">%s</a>", lbs->name_enc, message_id,
                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                              loc("Local entry"));
                              ~~~~~~~~~~~~~~~~~~~
src/elogd.c:17254:53: warning: ‘%s’ directive writing up to 255 bytes into a region of size 244 [-Wformat-overflow=]
                      sprintf(loc_ref, "<a href=\"../%s/%d\">%s</a>", lbs->name_enc, message_id, loc("local"));
                                                     ^~
src/elogd.c:17254:22: note: ‘sprintf’ output 21 or more bytes (assuming 276) into a destination of size 256
                      sprintf(loc_ref, "<a href=\"../%s/%d\">%s</a>", lbs->name_enc, message_id, loc("local"));
                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c:16825:33: warning: ‘%s’ directive writing up to 1999 bytes into a region of size 992 [-Wformat-overflow=]
          sprintf(line, "MIRROR: %s", str);
                                 ^~
src/elogd.c:17044:31:
             mprint(lbs, mode, str);
                               ~~~
src/elogd.c:16825:10: note: ‘sprintf’ output between 9 and 2008 bytes into a destination of size 1000
          sprintf(line, "MIRROR: %s", str);
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c:17501:60: warning: ‘%s’ directive writing up to 1999 bytes into a region of size 240 [-Wformat-overflow=]
                         sprintf(rem_ref, "<a href=\"http://%s%d\">%s</a>", str, message_id,
                                                            ^~              ~~~
src/elogd.c:17501:25: note: ‘sprintf’ output 24 or more bytes (assuming 2023) into a destination of size 256
                         sprintf(rem_ref, "<a href=\"http://%s%d\">%s</a>", str, message_id,
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                                 loc("Remote entry"));
                                 ~~~~~~~~~~~~~~~~~~~~
src/elogd.c: In function ‘retrieve_email_from’:
src/elogd.c:3539:44: warning: ‘%s’ directive writing up to 255 bytes into a region of size 245 [-Wformat-overflow=]
       sprintf(email_from_name, "ELog <ELog@%s>", host_name);
                                            ^~    ~~~~~~~~~
src/elogd.c:3539:7: note: ‘sprintf’ output between 13 and 268 bytes into a destination of size 256
       sprintf(email_from_name, "ELog <ELog@%s>", host_name);
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c:3540:34: warning: ‘%s’ directive writing up to 255 bytes into a region of size 250 [-Wformat-overflow=]
       sprintf(email_from, "<ELog@%s>", host_name);
                                  ^~    ~~~~~~~~~
src/elogd.c:3540:7: note: ‘sprintf’ output between 8 and 263 bytes into a destination of size 256
       sprintf(email_from, "<ELog@%s>", host_name);
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c:25877:41: warning: ‘%s’ directive writing up to 255 bytes into a region of size 239 [-Wformat-overflow=]
src/elogd.c:3560:53:
          get_user_line(lbs, login_name, NULL, NULL, email_from, NULL, NULL, NULL);
                                                     ~~~~~~~~~~
src/elogd.c:25877:41:
          sprintf(str, "/list/user[email=%s]", email);
                                         ^~
src/elogd.c:25877:10: note: ‘sprintf’ output between 19 and 274 bytes into a destination of size 256
          sprintf(str, "/list/user[email=%s]", email);
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c:25873:40: warning: ‘%s’ directive writing up to 255 bytes into a region of size 240 [-Wformat-overflow=]
src/elogd.c:3560:29:
          get_user_line(lbs, login_name, NULL, NULL, email_from, NULL, NULL, NULL);
                             ~~~~~~~~~~  
src/elogd.c:25873:40:
          sprintf(str, "/list/user[name=%s]", user);
                                        ^~
src/elogd.c:25873:10: note: ‘sprintf’ output between 18 and 273 bytes into a destination of size 256
          sprintf(str, "/list/user[name=%s]", user);
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c:3561:38: warning: ‘ <’ directive writing 2 bytes into a region of size between 1 and 256 [-Wformat-overflow=]
          sprintf(email_from_name, "%s <%s>", login_name, email_from);
                                      ^~
src/elogd.c:3561:10: note: ‘sprintf’ output between 4 and 514 bytes into a destination of size 256
          sprintf(email_from_name, "%s <%s>", login_name, email_from);
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c: In function ‘save_user_config’:
src/elogd.c:13400:29: warning: ‘%s’ directive writing up to 255 bytes into a region of size 254 [-Wformat-overflow=]
          sprintf(str, "%s \"%s\" %s", loc("Login name"), user_enc, loc("exists already"));
                             ^~                           ~~~~~~~~
src/elogd.c:13400:10: note: ‘sprintf’ output 5 or more bytes (assuming 260) into a destination of size 256
          sprintf(str, "%s \"%s\" %s", loc("Login name"), user_enc, loc("exists already"));
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c:13425:34: warning: ‘%s’ directive writing up to 255 bytes into a region of size 240 [-Wformat-overflow=]
    sprintf(str, "/list/user[name=%s]", user_enc);
                                  ^~    ~~~~~~~~
src/elogd.c:13425:4: note: ‘sprintf’ output between 18 and 273 bytes into a destination of size 256
    sprintf(str, "/list/user[name=%s]", user_enc);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c:13519:40: warning: ‘%s’ directive writing up to 255 bytes into a region of size 249 [-Wformat-overflow=]
                   sprintf(url, "http://%s:%d/", http_host, elog_tcp_port);
                                        ^~       ~~~~~~~~~
src/elogd.c:13519:19: note: ‘sprintf’ output between 11 and 276 bytes into a destination of size 256
                   sprintf(url, "http://%s:%d/", http_host, elog_tcp_port);
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c:13517:41: warning: ‘%s’ directive writing up to 255 bytes into a region of size 248 [-Wformat-overflow=]
                   sprintf(url, "https://%s:%d/", http_host, elog_tcp_port);
                                         ^~       ~~~~~~~~~
src/elogd.c:13517:19: note: ‘sprintf’ output between 12 and 277 bytes into a destination of size 256
                   sprintf(url, "https://%s:%d/", http_host, elog_tcp_port);
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c:13514:40: warning: ‘%s’ directive writing up to 255 bytes into a region of size 249 [-Wformat-overflow=]
                   sprintf(url, "http://%s/", http_host);
                                        ^~    ~~~~~~~~~
src/elogd.c:13514:19: note: ‘sprintf’ output between 9 and 264 bytes into a destination of size 256
                   sprintf(url, "http://%s/", http_host);
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c:13512:41: warning: ‘%s’ directive writing up to 255 bytes into a region of size 248 [-Wformat-overflow=]
                   sprintf(url, "https://%s/", http_host);
                                         ^~    ~~~~~~~~~
src/elogd.c:13512:19: note: ‘sprintf’ output between 10 and 265 bytes into a destination of size 256
                   sprintf(url, "https://%s/", http_host);
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c:13705:30: warning: ‘%s’ directive writing up to 255 bytes into a region of size 253 [-Wformat-overflow=]
             sprintf(str, "../%s/", lbs->name_enc);
                              ^~
src/elogd.c:13705:13: note: ‘sprintf’ output between 5 and 260 bytes into a destination of size 256
             sprintf(str, "../%s/", lbs->name_enc);
             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c: In function ‘activate_user’:
src/elogd.c:25877:41: warning: ‘%s’ directive writing up to 255 bytes into a region of size 239 [-Wformat-overflow=]
src/elogd.c:14075:46:
    get_user_line(lbs, user_name, NULL, NULL, user_email, NULL, NULL, &inactive);
                                              ~~~~~~~~~~
src/elogd.c:25877:41:
          sprintf(str, "/list/user[email=%s]", email);
                                         ^~
src/elogd.c:25877:10: note: ‘sprintf’ output between 19 and 274 bytes into a destination of size 256
          sprintf(str, "/list/user[email=%s]", email);
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c:14111:40: warning: ‘%s’ directive writing up to 255 bytes into a region of size 249 [-Wformat-overflow=]
                   sprintf(url, "http://%s:%d/", http_host, elog_tcp_port);
                                        ^~       ~~~~~~~~~
src/elogd.c:14111:19: note: ‘sprintf’ output between 11 and 276 bytes into a destination of size 256
                   sprintf(url, "http://%s:%d/", http_host, elog_tcp_port);
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c:14109:41: warning: ‘%s’ directive writing up to 255 bytes into a region of size 248 [-Wformat-overflow=]
                   sprintf(url, "https://%s:%d/", http_host, elog_tcp_port);
                                         ^~       ~~~~~~~~~
src/elogd.c:14109:19: note: ‘sprintf’ output between 12 and 277 bytes into a destination of size 256
                   sprintf(url, "https://%s:%d/", http_host, elog_tcp_port);
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c:14106:40: warning: ‘%s’ directive writing up to 255 bytes into a region of size 249 [-Wformat-overflow=]
                   sprintf(url, "http://%s/", http_host);
                                        ^~    ~~~~~~~~~
src/elogd.c:14106:19: note: ‘sprintf’ output between 9 and 264 bytes into a destination of size 256
                   sprintf(url, "http://%s/", http_host);
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c:14104:41: warning: ‘%s’ directive writing up to 255 bytes into a region of size 248 [-Wformat-overflow=]
                   sprintf(url, "https://%s/", http_host);
                                         ^~    ~~~~~~~~~
src/elogd.c:14104:19: note: ‘sprintf’ output between 10 and 265 bytes into a destination of size 256
                   sprintf(url, "https://%s/", http_host);
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c: In function ‘show_forgot_pwd_page’:
src/elogd.c:25877:41: warning: ‘%s’ directive writing up to 255 bytes into a region of size 239 [-Wformat-overflow=]
src/elogd.c:14173:58:
          get_user_line(lbs, login_name, NULL, full_name, user_email, NULL, NULL, NULL);
                                                          ~~~~~~~~~~
src/elogd.c:25877:41:
          sprintf(str, "/list/user[email=%s]", email);
                                         ^~
src/elogd.c:25877:10: note: ‘sprintf’ output between 19 and 274 bytes into a destination of size 256
          sprintf(str, "/list/user[email=%s]", email);
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c:25873:40: warning: ‘%s’ directive writing up to 255 bytes into a region of size 240 [-Wformat-overflow=]
src/elogd.c:14173:29:
          get_user_line(lbs, login_name, NULL, full_name, user_email, NULL, NULL, NULL);
                             ~~~~~~~~~~  
src/elogd.c:25873:40:
          sprintf(str, "/list/user[name=%s]", user);
                                        ^~
src/elogd.c:25873:10: note: ‘sprintf’ output between 18 and 273 bytes into a destination of size 256
          sprintf(str, "/list/user[name=%s]", user);
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c:14221:44: warning: ‘%s’ directive writing up to 255 bytes into a region of size 243 [-Wformat-overflow=]
             sprintf(redir, "?cmd=%s&oldpwd=%s", loc("Change password"), pwd);
                                            ^~                           ~~~
src/elogd.c:14221:13: note: ‘sprintf’ output 14 or more bytes (assuming 269) into a destination of size 256
             sprintf(redir, "?cmd=%s&oldpwd=%s", loc("Change password"), pwd);
             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c:14225:34: warning: ‘%s’ directive writing up to 999 bytes into a region of size 993 [-Wformat-overflow=]
             sprintf(str, "?redir=%s&uname=%s&upassword=%s", str2, login_name, pwd);
                                  ^~                         ~~~~
src/elogd.c:14225:13: note: ‘sprintf’ output between 26 and 1535 bytes into a destination of size 1000
             sprintf(str, "?redir=%s&uname=%s&upassword=%s", str2, login_name, pwd);
             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c: In function ‘show_change_pwd_page’:
src/elogd.c:9011:53: warning: ‘%s’ directive writing up to 255 bytes into a region of size 237 [-Wformat-overflow=]
                sprintf(str, "?cmd=%s&config=%s&fail=%s", loc("Change password"), getparam("unm"), error_str);
                                                     ^~                                            ~~~~~~~~~
src/elogd.c:9011:16: note: ‘sprintf’ output 20 or more bytes (assuming 275) into a destination of size 256
                sprintf(str, "?cmd=%s&config=%s&fail=%s", loc("Change password"), getparam("unm"), error_str);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c:9001:47: warning: ‘%s’ directive writing up to 255 bytes into a region of size 241 [-Wformat-overflow=]
                sprintf(str, "?cmd=%s&cfg_user=%s", loc("Config"), config);
                                               ^~                  ~~~~~~
src/elogd.c:9001:16: note: ‘sprintf’ output 16 or more bytes (assuming 271) into a destination of size 256
                sprintf(str, "?cmd=%s&cfg_user=%s", loc("Config"), config);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c: In function ‘show_edit_form’:
src/elogd.c:10047:33: warning: ‘%s’ directive writing up to 255 bytes into a region of size 251 [-Wformat-overflow=]
       sprintf(page_title, "ELOG %s", lbs->name);
                                 ^~
src/elogd.c:10047:7: note: ‘sprintf’ output between 6 and 261 bytes into a destination of size 256
       sprintf(page_title, "ELOG %s", lbs->name);
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c:10721:35: warning: ‘%s’ directive writing up to 9999 bytes into a region of size 248 [-Wformat-overflow=]
          sprintf(title, " title=\"%s\"", comment);
                                   ^~     ~~~~~~~
src/elogd.c:10721:10: note: ‘sprintf’ output between 10 and 10009 bytes into a destination of size 256
          sprintf(title, " title=\"%s\"", comment);
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c:11189:52: warning: ‘%s’ directive writing up to 9999 bytes into a region of size 9992 [-Wformat-overflow=]
                         sprintf(tooltip, " title=\"%s\"", comment);
                                                    ^~     ~~~~~~~
src/elogd.c:11189:25: note: ‘sprintf’ output between 10 and 10009 bytes into a destination of size 10000
                         sprintf(tooltip, " title=\"%s\"", comment);
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c:11138:52: warning: ‘%s’ directive writing up to 9999 bytes into a region of size 9992 [-Wformat-overflow=]
                         sprintf(tooltip, " title=\"%s\"", comment);
                                                    ^~     ~~~~~~~
src/elogd.c:11138:25: note: ‘sprintf’ output between 10 and 10009 bytes into a destination of size 10000
                         sprintf(tooltip, " title=\"%s\"", comment);
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c:11143:52: warning: ‘%s’ directive writing up to 9999 bytes into a region of size 9992 [-Wformat-overflow=]
                         sprintf(tooltip, " title=\"%s\"", comment);
                                                    ^~     ~~~~~~~
src/elogd.c:11143:25: note: ‘sprintf’ output between 10 and 10009 bytes into a destination of size 10000
                         sprintf(tooltip, " title=\"%s\"", comment);
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c:11958:41: warning: ‘ -format '’ directive writing 10 bytes into a region of size between 1 and 256 [-Wformat-overflow=]
                         sprintf(cmd, "%s -format '%%wx%%h' '%s'", _identify_cmd, file_name);
                                         ^~~~~~~~~~
src/elogd.c:11958:25: note: ‘sprintf’ output between 20 and 530 bytes into a destination of size 256
                         sprintf(cmd, "%s -format '%%wx%%h' '%s'", _identify_cmd, file_name);
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c:11956:41: warning: ‘ -format '’ directive writing 10 bytes into a region of size between 1 and 256 [-Wformat-overflow=]
                         sprintf(cmd, "%s -format '%%wx%%h' '%s[0]'", _identify_cmd, file_name);
                                         ^~~~~~~~~~
src/elogd.c:11956:25: note: ‘sprintf’ output between 23 and 533 bytes into a destination of size 256
                         sprintf(cmd, "%s -format '%%wx%%h' '%s[0]'", _identify_cmd, file_name);
                         ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c:12022:42: warning: ‘%s’ directive writing up to 2999 bytes into a region of size 256 [-Wformat-overflow=]
                            sprintf(ref, "%s/%s", str, file_enc);
                                          ^~      ~~~
src/elogd.c:12022:28: note: ‘sprintf’ output between 2 and 3256 bytes into a destination of size 256
                            sprintf(ref, "%s/%s", str, file_enc);
                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c:12008:48: warning: ‘%s’ directive writing up to 2999 bytes into a region of size 256 [-Wformat-overflow=]
                                  sprintf(ref, "%s/%s?thumb=1", str, file_enc);
                                                ^~              ~~~
src/elogd.c:12008:34: note: ‘sprintf’ output between 10 and 3264 bytes into a destination of size 256
                                  sprintf(ref, "%s/%s?thumb=1", str, file_enc);
                                  ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c:11991:42: warning: ‘%s’ directive writing up to 2999 bytes into a region of size 256 [-Wformat-overflow=]
                            sprintf(ref, "%s/%s?thumb=1", str, file_enc);
                                          ^~              ~~~
src/elogd.c:11991:28: note: ‘sprintf’ output between 10 and 3264 bytes into a destination of size 256
                            sprintf(ref, "%s/%s?thumb=1", str, file_enc);
                            ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c: In function ‘show_elog_list’:
src/elogd.c:20242:39: warning: ‘%s’ directive writing up to 79 bytes into a region of size 73 [-Wformat-overflow=]
          sprintf(mode_cookie, "elmode=%s", mode);
                                       ^~   ~~~~
src/elogd.c:20242:10: note: ‘sprintf’ output between 8 and 87 bytes into a destination of size 80
          sprintf(mode_cookie, "elmode=%s", mode);
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c:21574:43: warning: ‘%s’ directive writing up to 1499 bytes into a region of size 249 [-Wformat-overflow=]
                      sprintf(ref, "?rsort=%s", str);
                                           ^~   ~~~
src/elogd.c:21574:22: note: ‘sprintf’ output between 8 and 1507 bytes into a destination of size 256
                      sprintf(ref, "?rsort=%s", str);
                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c:21576:42: warning: ‘%s’ directive writing up to 1499 bytes into a region of size 250 [-Wformat-overflow=]
                      sprintf(ref, "?sort=%s", str);
                                          ^~   ~~~
src/elogd.c:21576:22: note: ‘sprintf’ output between 7 and 1506 bytes into a destination of size 256
                      sprintf(ref, "?sort=%s", str);
                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c:21592:38: warning: ‘%s’ directive writing up to 1499 bytes into a region of size 1493 [-Wformat-overflow=]
                sprintf(str, "title=\"%s\"", comment);
                                      ^~     ~~~~~~~
src/elogd.c:21592:16: note: ‘sprintf’ output between 9 and 1508 bytes into a destination of size 1500
                sprintf(str, "title=\"%s\"", comment);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c:20066:31: warning: ‘3D’ directive writing 2 bytes into a region of size between 0 and 1499 [-Wformat-overflow=]
             sprintf(str, "%s%%3D", param);
                               ^~
src/elogd.c:20066:13: note: ‘sprintf’ output between 4 and 1503 bytes into a destination of size 1500
             sprintf(str, "%s%%3D", param);
             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c:20089:31: warning: ‘3D’ directive writing 2 bytes into a region of size between 0 and 1499 [-Wformat-overflow=]
             sprintf(str, "%s%%3D", param);
                               ^~
src/elogd.c:20089:13: note: ‘sprintf’ output between 4 and 1503 bytes into a destination of size 1500
             sprintf(str, "%s%%3D", param);
             ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c: In function ‘show_elog_entry’:
src/elogd.c:25284:33: warning: ‘%s’ directive writing up to 2999 bytes into a region of size 256 [-Wformat-overflow=]
                   sprintf(ref, "%s/%s", str, file_enc);
                                 ^~      ~~~
src/elogd.c:25284:19: note: ‘sprintf’ output between 2 and 3256 bytes into a destination of size 256
                   sprintf(ref, "%s/%s", str, file_enc);
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c:25278:43: warning: ‘%s’ directive writing up to 255 bytes into a region of size between 246 and 247 [-Wformat-overflow=]
                   sprintf(ref, "cid:att%d@%s", index, domain);
                                           ^~          ~~~~~~
src/elogd.c:25278:19: note: ‘sprintf’ output between 10 and 266 bytes into a destination of size 256
                   sprintf(ref, "cid:att%d@%s", index, domain);
                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c: In function ‘compose_email’:
src/elogd.c:22630:18: warning: ‘%s’ directive writing up to 1599 bytes into a region of size 256 [-Wformat-overflow=]
    sprintf(url, "%s%d", str, message_id);
                  ^~     ~~~
src/elogd.c:22630:4: note: ‘sprintf’ output between 2 and 1611 bytes into a destination of size 256
    sprintf(url, "%s%d", str, message_id);
    ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c: In function ‘submit_elog’:
src/elogd.c:23108:33: warning: ‘%d’ directive writing between 1 and 3 bytes into a region of size between 0 and 1499 [-Wformat-overflow=]
                sprintf(str, "%s_%d", ua, j);
                                 ^~
src/elogd.c:23108:29: note: directive argument in the range [0, 100]
                sprintf(str, "%s_%d", ua, j);
                             ^~~~~~~
src/elogd.c:23108:16: note: ‘sprintf’ output between 3 and 1504 bytes into a destination of size 1500
                sprintf(str, "%s_%d", ua, j);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c:23269:33: warning: ‘%d’ directive writing between 1 and 3 bytes into a region of size between 0 and 1499 [-Wformat-overflow=]
                sprintf(str, "%s_%d", ua, j);
                                 ^~
src/elogd.c:23269:29: note: directive argument in the range [0, 100]
                sprintf(str, "%s_%d", ua, j);
                             ^~~~~~~
src/elogd.c:23269:16: note: ‘sprintf’ output between 3 and 1504 bytes into a destination of size 1500
                sprintf(str, "%s_%d", ua, j);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c:23647:34: warning: ‘%d’ directive writing between 1 and 10 bytes into a region of size between 0 and 1499 [-Wformat-overflow=]
                sprintf(str2, "%s_%d", ua, mindex);
                                  ^~
src/elogd.c:23647:30: note: directive argument in the range [0, 2147483647]
                sprintf(str2, "%s_%d", ua, mindex);
                              ^~~~~~~
src/elogd.c:23647:16: note: ‘sprintf’ output between 3 and 1511 bytes into a destination of size 1500
                sprintf(str2, "%s_%d", ua, mindex);
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c: In function ‘do_self_register’:
src/elogd.c:26908:27: warning: ‘%s’ directive writing up to 255 bytes into a region of size 253 [-Wformat-overflow=]
          sprintf(str, "../%s/", lbs->name_enc);
                           ^~
src/elogd.c:26908:10: note: ‘sprintf’ output between 5 and 260 bytes into a destination of size 256
          sprintf(str, "../%s/", lbs->name_enc);
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c: In function ‘show_uploader_finished’:
src/elogd.c:27149:24: warning: ‘%s’ directive writing up to 255 bytes into a region of size between 0 and 255 [-Wformat-overflow=]
       sprintf(ref, "%s/%s?lb=%s", str, file_enc, lbs->name_enc);
                        ^~              ~~~~~~~~
src/elogd.c:27149:7: note: ‘sprintf’ output between 6 and 771 bytes into a destination of size 256
       sprintf(ref, "%s/%s?lb=%s", str, file_enc, lbs->name_enc);
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c:27150:30: warning: ‘%s’ directive writing up to 255 bytes into a region of size between 0 and 255 [-Wformat-overflow=]
       sprintf(ref_thumb, "%s/%s?lb=%s&thumb=1", str, file_enc, lbs->name_enc);
                              ^~                      ~~~~~~~~
src/elogd.c:27150:7: note: ‘sprintf’ output between 14 and 779 bytes into a destination of size 256
       sprintf(ref_thumb, "%s/%s?lb=%s&thumb=1", str, file_enc, lbs->name_enc);
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c: In function ‘interprete’:
src/elogd.c:28378:27: warning: ‘%s’ directive writing up to 1499 bytes into a region of size 1495 [-Wformat-overflow=]
       sprintf(str1, "?cmd=%s", str);
                           ^~   ~~~
src/elogd.c:28378:7: note: ‘sprintf’ output between 6 and 1505 bytes into a destination of size 1500
       sprintf(str1, "?cmd=%s", str);
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c:28382:27: warning: ‘%s’ directive writing up to 1499 bytes into a region of size 1495 [-Wformat-overflow=]
       sprintf(str2, "?cmd=%s", str);
                           ^~   ~~~
src/elogd.c:28382:7: note: ‘sprintf’ output between 6 and 1505 bytes into a destination of size 1500
       sprintf(str2, "?cmd=%s", str);
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c:28177:31: warning: ‘%s’ directive writing up to 1499 bytes into a region of size 1495 [-Wformat-overflow=]
          sprintf(str, "%s: <b>%s</b>", loc("Invalid URL"), str2);
                               ^~                           ~~~~
src/elogd.c:28177:10: note: ‘sprintf’ output 10 or more bytes (assuming 1509) into a destination of size 1500
          sprintf(str, "%s: <b>%s</b>", loc("Invalid URL"), str2);
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c:27649:28: warning: ‘%s’ directive writing up to 1499 bytes into a region of size 1495 [-Wformat-overflow=]
       sprintf(str, "%s: <b>%s</b>", loc("Invalid URL"), str2);
                            ^~                           ~~~~
src/elogd.c:27649:7: note: ‘sprintf’ output 10 or more bytes (assuming 1509) into a destination of size 1500
       sprintf(str, "%s: <b>%s</b>", loc("Invalid URL"), str2);
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elogd.c: In function ‘decode_post’:
src/elogd.c:28615:54: warning: ‘%s’ directive writing up to 1499 bytes into a region of size 1483 [-Wformat-overflow=]
                      sprintf(str, "Error: Filename \"%s\" contains invalid character", str2);
                                                      ^~                                ~~~~
src/elogd.c:28615:22: note: ‘sprintf’ output between 46 and 1545 bytes into a destination of size 1500
                      sprintf(str, "Error: Filename \"%s\" contains invalid character", str2);
                      ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
gcc -O3 -funroll-loops -fomit-frame-pointer -W -Wall -Wno-deprecated-declarations -Imxml -DHAVE_SSL -o elconv src/elconv.c -lssl
src/elconv.c: In function ‘ss_file_find’:
src/elconv.c:233:10: warning: ‘strncpy’ output truncated before terminating nul copying as many bytes from a string as its length [-Wstringop-truncation]
          strncpy(*plist + (i * MAX_PATH_LENGTH), dp->d_name, strlen(dp->d_name));
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elconv.c: In function ‘el_search_message’:
src/elconv.c:325:32: warning: ‘%02d’ directive writing between 2 and 3 bytes into a region of size between 1 and 256 [-Wformat-overflow=]
          sprintf(file_name, "%s%02d%02d%02d.log", dir, tms->tm_year % 100, tms->tm_mon + 1, tms->tm_mday);
                                ^~~~
src/elconv.c:325:29: note: directive argument in the range [-99, 99]
          sprintf(file_name, "%s%02d%02d%02d.log", dir, tms->tm_year % 100, tms->tm_mon + 1, tms->tm_mday);
                             ^~~~~~~~~~~~~~~~~~~~
src/elconv.c:325:29: note: directive argument in the range [-2147483647, 2147483647]
src/elconv.c:325:10: note: ‘sprintf’ output between 11 and 285 bytes into a destination of size 256
          sprintf(file_name, "%s%02d%02d%02d.log", dir, tms->tm_year % 100, tms->tm_mon + 1, tms->tm_mday);
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elconv.c:419:32: warning: ‘%06d’ directive writing 6 bytes into a region of size between 1 and 256 [-Wformat-overflow=]
          sprintf(file_name, "%s%06d.log", dir, max % 1000000);
                                ^~~~
src/elconv.c:419:29: note: directive argument in the range [0, 999999]
          sprintf(file_name, "%s%06d.log", dir, max % 1000000);
                             ^~~~~~~~~~~~
src/elconv.c:419:10: note: ‘sprintf’ output between 11 and 266 bytes into a destination of size 256
          sprintf(file_name, "%s%06d.log", dir, max % 1000000);
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elconv.c:388:32: warning: ‘%06d’ directive writing between 6 and 7 bytes into a region of size between 1 and 256 [-Wformat-overflow=]
          sprintf(file_name, "%s%06d.log", dir, min % 1000000);
                                ^~~~
src/elconv.c:388:29: note: directive argument in the range [-999999, 999999]
          sprintf(file_name, "%s%06d.log", dir, min % 1000000);
                             ^~~~~~~~~~~~
src/elconv.c:388:10: note: ‘sprintf’ output between 11 and 267 bytes into a destination of size 256
          sprintf(file_name, "%s%06d.log", dir, min % 1000000);
          ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elconv.c: In function ‘el_submit’:
src/elconv.c:626:38: warning: ‘%02d’ directive writing between 2 and 3 bytes into a region of size between 1 and 256 [-Wformat-overflow=]
                sprintf(file_name, "%s%02d%02d%02d_%02d%02d%02d_%s", dir,
                                      ^~~~
src/elconv.c:626:35: note: directive argument in the range [-99, 99]
                sprintf(file_name, "%s%02d%02d%02d_%02d%02d%02d_%s", dir,
                                   ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elconv.c:626:35: note: directive argument in the range [-2147483647, 2147483647]
src/elconv.c:626:16: note: ‘sprintf’ output between 15 and 571 bytes into a destination of size 256
                sprintf(file_name, "%s%02d%02d%02d_%02d%02d%02d_%s", dir,
                ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                        tms->tm_year % 100, tms->tm_mon + 1, tms->tm_mday, tms->tm_hour,
                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
                        tms->tm_min, tms->tm_sec, str);
                        ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elconv.c:690:29: warning: ‘%02d’ directive writing between 2 and 3 bytes into a region of size between 1 and 256 [-Wformat-overflow=]
       sprintf(file_name, "%s%02d%02d%02d.log", dir, tms->tm_year % 100, tms->tm_mon + 1, tms->tm_mday);
                             ^~~~
src/elconv.c:690:26: note: directive argument in the range [-99, 99]
       sprintf(file_name, "%s%02d%02d%02d.log", dir, tms->tm_year % 100, tms->tm_mon + 1, tms->tm_mday);
                          ^~~~~~~~~~~~~~~~~~~~
src/elconv.c:690:26: note: directive argument in the range [-2147483647, 2147483647]
src/elconv.c:690:7: note: ‘sprintf’ output between 11 and 285 bytes into a destination of size 256
       sprintf(file_name, "%s%02d%02d%02d.log", dir, tms->tm_year % 100, tms->tm_mon + 1, tms->tm_mday);
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elconv.c:656:29: warning: ‘%s’ directive writing up to 255 bytes into a region of size between 1 and 256 [-Wformat-overflow=]
       sprintf(file_name, "%s%s.log", dir, str);
                             ^~            ~~~
src/elconv.c:656:7: note: ‘sprintf’ output between 5 and 515 bytes into a destination of size 256
       sprintf(file_name, "%s%s.log", dir, str);
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
src/elconv.c: In function ‘scan_messages’:
src/elconv.c:981:29: warning: ‘%s’ directive writing up to 255 bytes into a region of size between 1 and 256 [-Wformat-overflow=]
       sprintf(file_name, "%s%sa.log", data_dir, str);
                             ^~                  ~~~
src/elconv.c:981:7: note: ‘sprintf’ output between 6 and 516 bytes into a destination of size 256
       sprintf(file_name, "%s%sa.log", data_dir, str);
       ^~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
 

 

 

 

Andreas Luedeke wrote:

Stefan said "code is commited": that means you can download the latest version from https://bitbucket.org/ritt/elog, as described in https://elog.psi.ch/elog/download.html, and then compile it. Clear now?

Stefan Ritt wrote:

This warning is triggered by the use of the sprintf() funciton, which can write beyond the boundary of the destination string. I replaced it by snprintf(), which should make the compiler happy. Code is committed. Unfortuantely I have no FC27 here, so if there is still some waring with the current code, please post the full warning list here.

Stefan

 

 

  293   Tue Apr 22 17:13:08 2003 Angy Alexander ZVYAGINAlexander.Zviagine@cern.chBug report  'Reply' removes attachments from the original message
It seems when I use "reply" with an attachments, the original attachments of
the message are removed.

I use elog-2.3.5

Alexander.
  295   Tue Apr 22 17:17:36 2003 Question Alexander ZVYAGINAlexander.Zviagine@cern.chBug report  problem with 20+ attachments
It seems that maximal number of attachments is about 20. When you try to add
more, a new entry _is_ added to the logbook but the refernce to it is not
added to the web page.
  296   Tue Apr 22 17:20:19 2003 Reply Alexander ZVYAGINAlexander.Zviagine@cern.chBug report  Re: 'Reply' removes attachments from the original message
> > It seems when I use "reply" with an attachments, the original attachments of
> > the message are removed.
> > 
> > I use elog-2.3.5
> > 
> > Alexander.
> 
> Please see elog:280 . I will releae 2.3.6 with this bugfix somewhen during 
> this week.
> 
> - Stefan

Wow! Fast reply!!! Thanks a lot!
  298   Tue Apr 22 17:34:52 2003 Reply Alexander ZVYAGINAlexander.Zviagine@cern.chBug report  Re: problem with 20+ attachments
> > It seems that maximal number of attachments is about 20. When you try to add
> > more, a new entry _is_ added to the logbook but the refernce to it is not
> > added to the web page.
> 
> Uhhh, Mr. "monster of number of attachments" gave it's stroke!

:)  I wanted to post a message with ~200 attachments.

>Well, we never 
> had such large number of attachments so I forgot to put a waring in. The 
> limit comes from 
> 
> #define MAX_ATTACHMENTS  20
> 
> in elogd.c which you can easily increase (as long as you have RAM!) and 
> recompile.

Actually my report was NOT about this limitation. You have it - it is fine.
The problem is that I add some 'zombies' or dead files to my logbook.

BTW is there a tool to check the 'integrity' of a logbook? That all
attachments are in place,  there are no dead files, etc. I perfectly
understand that it is not _highly_ desired or needed, but with the two last
problems (auto-removing of attached files and silent adding a new ones with
20+ attachments) I have doubts that our logbook in a good state. And we just
started to use it. And I am still so excited about it!!
  906   Mon Feb 7 13:14:41 2005 Idea Emiliano GabrielliAlberT@SuperAlberT.itRequestLinux2.5.6images attached shown as inline
I'm configuring this great application in order to replace the previous
elogbook my community is using (in the accelerator's world).

One of the main and mandatory feature they cannot renunce is the possibility
of displaying every attached image just inline, without having to click over
the file name or to enter the entry view (in which the attachment can
already be displayed inline) ...  

- images (and hopefully ps, eps, pdf) be displayed inline just after the
text body of the message in the main "List" view
- possibility to configure the scale of this view
- possibility of build some thumbs in order to save BW and time


Is there any way to do it or any plan to implement such a feature in the
very next future ? 
  907   Mon Feb 7 13:28:18 2005 Warning Emiliano GabrielliAlberT@SuperAlberT.itBug reportLinux2.5.6preselected values and conditional options
here is a piece of my current config:

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Attributes = Author, Type, Category, Subject
Required Attributes = Author, Type, Subject

Options Type = Deposition{1}, Arc Studies{1}, Conditioning{1}, Vacuum{2},
Other{3}
Show Attributes = Author, Subject, Type

{1}ROptions Category = Nb, NbN, W, cavity system
{2}ROptions Category = pump, leak, mounting

{1}Show Attributes = Author, Subject, Type, Category
{2}Show Attributes = Author, Subject, Type, Category
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

this is an escamotage I use to have the option to be displyed.
I mean that something like the following:

;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;
Attributes = Author, Type, Category, Subject
Required Attributes = Author, Type, Subject
Options Type = Deposition{1}, Arc Studies{1}, Conditioning{1}, Vacuum{2},
Other{3}
Preset Type = Deposition

{1}ROptions Category = Nb, NbN, W, cavity system
{2}ROptions Category = pump, leak, mounting

{3}Show Attributes = Author, Subject, Type
;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;;

rises a bug: the select input correctly shows "Deposition" as preselected
value, BUT the attributes shown are not those identified by the "{3}".
re-selecting by hand the "deposition" Type option everything goes right.

sorry for my bad english
ELOG V3.1.5-3fb85fa6