brian 97/01/24 13:06:37
Modified: src http_main.c
Log:
Reviewed by: Brian Behlendorf, Randy Terbush, Roy T. Fielding
Submitted by: [EMAIL PROTECTED], Adrian Filipi-Martin <[EMAIL PROTECTED]>
> Adrian Filipi-Martin <[EMAIL PROTECTED]> writes:
> When starting httpd or restarting it with a SIGHUP, the following is logged
> to the error_log:
>
> [Wed Jan 8 14:21:03 1997] created shared memory segment #4206
> [Wed Jan 8 14:21:03 1997] sigaction(SIGSEGV): Invalid argument
> [Wed Jan 8 14:21:03 1997] sigaction(SIGBUS): Invalid argument
> [Wed Jan 8 14:21:03 1997] Server configured -- resuming normal operations
>
> (Note that the shared memory segment message is only present when the daemon
> is send a SIGHUP signal to restart it.)
>
> These error messages do not appear to have any real effect upon the
operation
> of the server. I expect they would not matter until it has either a bus or
> a segment fault.
>
> In any case, I looked at the source with gdb and the fact that a sigaction
> structure is not initialized completely in http_main.c seems to be the
culprit.
> In any case a small patch is included below that does the required clearing
of
> the sigaction structure and fixes the problem
Revision Changes Path
1.110 +1 -1 apache/src/http_main.c
Index: http_main.c
===================================================================
RCS file: /export/home/cvs/apache/src/http_main.c,v
retrieving revision 1.109
retrieving revision 1.110
diff -C3 -r1.109 -r1.110
*** http_main.c 1997/01/24 02:49:57 1.109
--- http_main.c 1997/01/24 21:06:33 1.110
***************
*** 1303,1308 ****
--- 1303,1309 ----
{
#ifndef NO_USE_SIGACTION
struct sigaction sa;
+ memset(&sa,0,sizeof sa);
if (!one_process) {
sa.sa_handler = (void (*)())seg_fault;
***************
*** 1314,1320 ****
}
/* USE WITH EXTREME CAUTION. Graceful restarts are known to break */
/* problems will be dealt with in a future release */
- memset(&sa,0,sizeof sa);
sa.sa_handler=(void (*)())sig_term;
if(sigaction(SIGTERM,&sa,NULL) < 0)
log_unixerr("sigaction(SIGTERM)", NULL, NULL, server_conf);
--- 1315,1320 ----