On Sun, Sep 28, 2003 at 02:52:37AM +0200, Sander Striker wrote:
> Hi,
> 
> I've tagged the 2.1 tree with STRIKER_2_1_0_PRE3.  Hopefully this is the
> last tag before the first 2.1 release.  Please give it a test run.
> Tarballs are at:
> 
>   http://www.apache.org/~striker/httpd-2.1.0-pre3/

It still contains the tiny bug of mine which leads to segfault in
listen.c. Setting lr = NULL on line 399 leads the the loop
closing early (see line 343) and the ap_listeners list being 
nonsensed.

End result is a segfault if something is already listening on :: 
on our port when httpd is started.

I know Joe Orton has it on his todo list, but here it is again 
anyway;

Index: server/listen.c
===================================================================
RCS file: /home/cvspublic/httpd-2.0/server/listen.c,v
retrieving revision 1.91
diff -u -r1.91 listen.c
--- server/listen.c     25 Aug 2003 16:00:49 -0000      1.91
+++ server/listen.c     25 Aug 2003 23:18:54 -0000
@@ -395,8 +395,13 @@
                         ap_listeners = lr->next;
                     }
 
-                    /* So that previous becomes NULL in the next iteration */
-                    lr = NULL;
+                   /* Allthough we've removed ourselves from the list, 
+                     * we need to make sure that the next iteration won't
+                     * consider "previous" a working IPv6 '::' socket. 
+                     * Changing the family is enough to make sure the
+                     * conditions before make_sock() fail. 
+                     */
+                    lr->bind_addr->family = AF_INET;
 
                     continue;
                 }
-- 
Colm MacCárthaigh                        Public Key: [EMAIL PROTECTED]
[EMAIL PROTECTED]                                         http://www.stdlib.net/

Reply via email to