You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@httpd.apache.org by "Brauel, Bjoern" <Bj...@softwareag.com> on 2003/05/06 15:25:15 UTC
PATCH: uninitialized variable sin6_slowinfo may cause bind to fai
l
Hi everyone,
I just fell over a small problem trying to run apache 2.0.45 on an AIX5.1
box. Apache didnt want to start complaining about this:
# ../bin/apachectl start
(22)A system call received a parameter that is not valid.: make_sock:
could not bind to address [::]:80
no listening sockets available, shutting down
This following patch fixes this:
diff -Naur httpd-2.0.45/srclib/apr/network_io/unix/sockaddr.c
httpd-2.0.45-fixed/srclib/apr/network_io/unix/sockaddr.c
--- httpd-2.0.45/srclib/apr/network_io/unix/sockaddr.c 2003-05-06
15:27:22.000000000 +0200
+++ httpd-2.0.45-fixed/srclib/apr/network_io/unix/sockaddr.c 2003-05-06
15:29:31.000000000 +0200
@@ -220,6 +220,7 @@
else if (family == APR_INET6) {
addr->salen = sizeof(struct sockaddr_in6);
addr->addr_str_len = 46;
+ addr->sa.sin6.sin6_flowinfo = 0;
addr->ipaddr_ptr = &(addr->sa.sin6.sin6_addr);
addr->ipaddr_len = sizeof(struct in6_addr);
}
Id be glad if this could be included in an official release otherwise Apache
2.0.45 is potentially unusable on AIX .
cheers .. Bjoern
Re: PATCH: uninitialized variable sin6_slowinfo may cause bind to
fail
Posted by Jeff Trawick <tr...@attglobal.net>.
Brauel, Bjoern wrote:
> Hi everyone,
>
> I just fell over a small problem trying to run apache 2.0.45 on an AIX5.1
> box. Apache didnt want to start complaining about this:
>
> # ../bin/apachectl start
> (22)A system call received a parameter that is not valid.: make_sock:
> could not bind to address [::]:80
> no listening sockets available, shutting down
> diff -Naur httpd-2.0.45/srclib/apr/network_io/unix/sockaddr.c
> httpd-2.0.45-fixed/srclib/apr/network_io/unix/sockaddr.c
> --- httpd-2.0.45/srclib/apr/network_io/unix/sockaddr.c 2003-05-06
> 15:27:22.000000000 +0200
> +++ httpd-2.0.45-fixed/srclib/apr/network_io/unix/sockaddr.c 2003-05-06
> 15:29:31.000000000 +0200
> @@ -220,6 +220,7 @@
> else if (family == APR_INET6) {
> addr->salen = sizeof(struct sockaddr_in6);
> addr->addr_str_len = 46;
> + addr->sa.sin6.sin6_flowinfo = 0;
We use the socket address filled in by getaddrinfo()... if we are
mucking it up, we should fix that... but I don't think that is the case.
I suspect you'll find from a trace of malloc calls that getaddrinfo()
forgot to initialize the storage containing the sockaddr that it returns
to Apache/APR.
> Id be glad if this could be included in an official release otherwise Apache
> 2.0.45 is potentially unusable on AIX .
Use "Listen 0.0.0.0:portnumber" unless you really have to have IPv6
working immediately.
Personally, I only saw this uninitialized sin6_flowinfo problem using a
non-default malloc and an older level of AIX but if you can verify that
it affects your box and that the sockaddr returned by getaddrinfo() has
a bogus sin6_flowinfo then by all means open a PMR with AIX support.