From 0e31d04682665c8ee284be2b4b3f343f2b8ea0a9 Mon Sep 17 00:00:00 2001 From: Bill Stoddard Date: Fri, 9 Mar 2001 18:28:55 +0000 Subject: [PATCH] Fix a Windows seg fault on startup when multiple listen directives are being used. The pool pointer in the local address field in apr_sock_t is not initialized until a request is received. in general, we should not rely on the addressed in apr_sock_t when doing work on the listen_recs. git-svn-id: https://svn.apache.org/repos/asf/httpd/httpd/trunk@88482 13f79535-47bb-0310-9956-ffa450edef68 --- server/listen.c | 5 +---- 1 file changed, 1 insertion(+), 4 deletions(-) diff --git a/server/listen.c b/server/listen.c index 9c1b023e22e..5b263268420 100644 --- a/server/listen.c +++ b/server/listen.c @@ -225,7 +225,7 @@ static void alloc_listener(process_rec *process, char *addr, apr_port_t port) /* see if we've got an old listener for this address:port */ for (walk = &old_listeners; *walk; walk = &(*walk)->next) { - apr_socket_addr_get(&sa, APR_LOCAL, (*walk)->sd); + sa = (*walk)->bind_addr; apr_sockaddr_port_get(&oldport, sa); apr_sockaddr_ip_get(&oldaddr, sa); if (!strcmp(oldaddr, addr) && port == oldport) { @@ -253,9 +253,6 @@ static void alloc_listener(process_rec *process, char *addr, apr_port_t port) "alloc_listener: failed to get a socket for %s", addr); return; } - apr_socket_addr_get(&sa, APR_LOCAL, new->sd); - apr_sockaddr_port_set(sa, port); - apr_sockaddr_ip_set(sa, addr); new->next = ap_listeners; ap_listeners = new; } -- 2.47.2