You are viewing a plain text version of this content. The canonical link for it is here.
Posted to cvs@httpd.apache.org by Dean Gaudet <dg...@hyperreal.org> on 1997/09/22 23:55:32 UTC

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 <ri...@transpect.net>
  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 <ri...@transpect.net>] 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;