The following reply was made to PR os-linux/588; it has been noted by GNATS.

From: Dean Gaudet <[EMAIL PROTECTED]>
To: [EMAIL PROTECTED]
Subject: os-linux/588: "select: (listen): Bad address" quickly repeats to 
errors.log until disk full.
Date: Wed, 24 Sep 1997 23:58:17 -0700 (PDT)

 
 The following patch was committed to the code to work around this problem.
 
 Dean
 
 ---------- Forwarded message ----------
 Date: Mon, 22 Sep 1997 14:55:32 -0700 (PDT)
 From: Dean Gaudet <[EMAIL PROTECTED]>
 Reply-To: new-httpd@apache.org
 To: [EMAIL PROTECTED]
 Subject: cvs commit: apache/src CHANGES http_main.c
 
 dgaudet     97/09/22 14:55:30
 
   Modified:    src      Tag: APACHE_1_2_X CHANGES http_main.c
   Log:
   Defend against linux EFAULT infinite loop on select().
   
   PR:          1107
   Submitted by:        Rick Franchuk <[EMAIL PROTECTED]>
   Reviewed by: Dean Gaudet, Marc Slemko, Roy Fielding
   
   Revision  Changes    Path
   No                   revision
   
   
   No                   revision
   
   
   1.286.2.53 +5 -0      apache/src/CHANGES
   
   Index: CHANGES
   ===================================================================
   RCS file: /export/home/cvs/apache/src/CHANGES,v
   retrieving revision 1.286.2.52
   retrieving revision 1.286.2.53
   diff -u -r1.286.2.52 -r1.286.2.53
   --- CHANGES  1997/08/21 22:56:18     1.286.2.52
   +++ CHANGES  1997/09/22 21:55:23     1.286.2.53
   @@ -1,3 +1,8 @@
   +Changes with Apache 1.2.5
   +
   +  *) Work around problem under Linux where a child will start looping
   +     reporting a select error over and over.
   +     [Rick Franchuk <[EMAIL PROTECTED]>] PR#1107
    
    Changes with Apache 1.2.4
    
   
   
   
   1.149.2.9 +9 -1      apache/src/http_main.c
   
   Index: http_main.c
   ===================================================================
   RCS file: /export/home/cvs/apache/src/http_main.c,v
   retrieving revision 1.149.2.8
   retrieving revision 1.149.2.9
   diff -u -r1.149.2.8 -r1.149.2.9
   --- http_main.c      1997/08/15 17:29:50     1.149.2.8
   +++ http_main.c      1997/09/22 21:55:25     1.149.2.9
   @@ -1776,8 +1776,16 @@
                    exit(0);
    
                errno = errsave;
   -            if (srv < 0 && errno != EINTR)
   +            if (srv < 0 && errno != EINTR) {
   +#ifdef LINUX
   +            if (errno == EFAULT) {
   +                log_unixerr("select", "(listen) fatal, exiting",
   +                            NULL, server_conf);
   +                exit(1);
   +            }
   +#endif
                    log_unixerr("select", "(listen)", NULL, server_conf);
   +        }
    
                if (srv <= 0)
                    continue;
   
   
   
 

Reply via email to