Demo Discussion
Forum Config Examples Contributions Vulnerabilities
  Discussion forum about ELOG, Page 340 of 808  Not logged in ELOG logo
icon4.gif   -W -Wall options (using gcc), posted by Heiko Scheit on Fri Feb 13 12:25:15 2004 
Maybe consider using the options -W -Wall when compiling elogd.
There are several warning messages.
    icon7.gif   Re: segmentation fault, posted by Stefan Ritt on Fri Feb 13 21:50:09 2004 
This problem has been fixed recently. The new code is

   /* special case: "Change %s" */
   if (strstr(orig, "Change ") && strcmp(orig, "Change %s") != 0) {
      sprintf(result, loc("Change %s"), orig + 7);
      return result;
   }

Alternatively you can get the updated version from CVS.

- Stefan
    icon2.gif   Re: -W -Wall options (using gcc), posted by Stefan Ritt on Fri Feb 13 21:52:48 2004 
Thanks, I did so.
    icon2.gif   Re: elog (not elogd) submit does not work anymore, posted by Stefan Ritt on Fri Feb 13 21:59:44 2004 
Oops! I 're-used' the '-s' flag for email suppression, so it was actually 
double used. I changed the email supprssion flag to '-p', so '-s' should 
work again for specifying subdirectories.
    icon5.gif   Re: -W -Wall options (using gcc), posted by Stefan Ritt on Mon Feb 16 16:07:34 2004 
So I fixed all compiler generated warnigns except these:

[midas@pc2075 ~/elog]$ gcc -g -O -W -Wall -o elogd src/elogd.c
src/elogd.c: In function `set_cookie':
src/elogd.c:4675: warning: `%y' yields only last 2 digits of year
src/elogd.c: In function `send_file_direct':
src/elogd.c:5483: warning: `%y' yields only last 2 digits of year
src/elogd.c: In function `show_elog_list':
src/elogd.c:11938: warning: `%x' yields only last 2 digits of year in some 
locales
src/elogd.c:11957: warning: `%x' yields only last 2 digits of year in some 
locales
src/elogd.c:11979: warning: `%x' yields only last 2 digits of year in some 
locales
src/elogd.c:11987: warning: `%x' yields only last 2 digits of year in some 
locales
src/elogd.c: In function `ctrlc_handler':
src/elogd.c:15864: warning: empty body in an if-statement
src/elogd.c: In function `hup_handler':
src/elogd.c:15870: warning: empty body in an if-statement

Do you know how to disable these warnings or any other workaround? I would 
like to compile without any remaining warnings.
    icon5.gif   Re: -W -Wall options (using gcc), posted by Heiko Scheit on Mon Feb 16 16:40:50 2004 
> So I fixed all compiler generated warnigns except these:
> 
> [midas@pc2075 ~/elog]$ gcc -g -O -W -Wall -o elogd src/elogd.c
> src/elogd.c: In function `set_cookie':
> src/elogd.c:4675: warning: `%y' yields only last 2 digits of year
> src/elogd.c: In function `send_file_direct':
> src/elogd.c:5483: warning: `%y' yields only last 2 digits of year
> src/elogd.c: In function `show_elog_list':
> src/elogd.c:11938: warning: `%x' yields only last 2 digits of year in some 
> locales
> src/elogd.c:11957: warning: `%x' yields only last 2 digits of year in some 
> locales
> src/elogd.c:11979: warning: `%x' yields only last 2 digits of year in some 
> locales
> src/elogd.c:11987: warning: `%x' yields only last 2 digits of year in some 
> locales
> src/elogd.c: In function `ctrlc_handler':
> src/elogd.c:15864: warning: empty body in an if-statement
> src/elogd.c: In function `hup_handler':
> src/elogd.c:15870: warning: empty body in an if-statement
> 
> Do you know how to disable these warnings or any other workaround? I would 
> like to compile without any remaining warnings.


Have a look at the gcc info pages:

$ info gcc "invoking gcc" "warning options"
    icon5.gif   Re: -W -Wall options (using gcc), posted by Stefan Ritt on Mon Feb 16 16:47:55 2004 
> Have a look at the gcc info pages:
> 
> $ info gcc "invoking gcc" "warning options"

Sure, I'm not stupid! I looked for ~10 minutes how to turn off the remaining 
warnings, but I could not find it. The code is now correct, like I do want the 
"%y" format specifier in the strftime() function, but the warning is wrong. The 
closest I came to was 

-W -Wall -Wno-format

which removes ther warning in strftime(), but I do want this warning, since it 
helps in many other printf() statements.
    icon5.gif   Re: -W -Wall options (using gcc), posted by Heiko Scheit on Mon Feb 16 17:18:39 2004 
> > Have a look at the gcc info pages:
> > 
> > $ info gcc "invoking gcc" "warning options"
> 
> Sure, I'm not stupid! 

  Sorry, didn't mean to offend you.

> I looked for ~10 minutes how to turn off the remaining 
> warnings, but I could not find it. The code is now correct, like I do want the 
> "%y" format specifier in the strftime() function, but the warning is wrong.

  One way to remove the warnings would be to use "%Y" in a separate strftime() call
  and then taking only the last two digits (characters) of that string.

  Something like:
old:
   strftime(str, sizeof(str), "%A, %d-%b-%y %H:%M:%S GMT", gmt);

new:
   strftime(str, sizeof(str), "%A, %d-%b-XX %H:%M:%S GMT", gmt);
   strftime(year, sizeof(year), "%Y", gmt);
   i=strstr(str,"XX"); /* find position of XX */
   if ( i+1 < sizeof(str) ) {
     str[i]  =year[3];
     str[i+1]=year[4];
   } else ...

  Somewhat cumbersome, but should work.  Maybe consider using the four 
  digit year directly, where possible.

  Gruss, Heiko
ELOG V3.1.5-3fb85fa6