Re: 1.3.91 / apache 1.0.3

Julio Sanchez (jsanchez@esegi.es)
10 May 1996 12:15:59 +0200


BearHeart / Bill Weinman <bearheart@bearnet.com> writes:
>
> I'm running apache 1.0.0 successfully on my 1.3.91 server (have been
> since before I upgraded it from 1.2.13 some months ago), and I want to
> upgrade apache to 1.0.3.
>
> The new server compiled without error (using gcc 2.7.2 / libc 5.3.9)
>
> (The old server was compiled a.out, and the new one of course is ELF.)
>
> When I run it, it seems to work except that I get this in the
> error log quite frequently:
>
> [Thu Apr 18 22:12:18 1996] httpd: caught SIGSEGV, dumping core

I hope this answer does not get too late (my backlog is inmense).

Are you running by chance Apache SSL? If this is the case, I went
through the same, but actually found the problem and reported it to
Ben Laurie. I said to him:

Hi Ben,

The following configuration SISEGVs in the child after correctly
servicing the request:

Apache SSL 1.0.3a
SSLeay 0.5.1
Linux 1.3.88 with libc 5.3.9 (everything is ELF)

The bug is in apache_ssl2.h. The definition for os_conn_close reads:

#define os_conn_close(conn) { SSL_CTX *ctx; int fd; \
fd=SSL_get_fd(conn->client.ssl); \
ctx=SSL_get_SSL_CTX(conn->client.ssl); \
SSL_free(conn->client.ssl); \
SSL_CTX_free(ctx); \
pclosef(conn->pool,fd); }

Freeing ctx is unnecessary. The ctx is already freed by SSL_free.
The second free attempt SIGSEGVs. It seems that ctx was simply a copy
of the pointer kept at client.ssl.

He told me it was a problem with the way contexts were dealt in later
versions of SSLeay.

All the best,

Julio