Apache 1.3.12/mod_ssl 2.6.2 on Win/NT.  I built the software from the OpenSA
0.20 source distribution in debug mode.

Description:

When accessing the standard Apache root page: https://myserver/, there are
intermittent traps (Access error due to bad pointer).  I trapped the
exception in the MSVC debugger.  Trap details follow:

- trap is in ap_ctx_get()/ap_ctx.c; the cause is a bad ap_ctx pointer passed
in parameter 1.

- call is from ssl_io_suck_read()/ssl_engine_io.c - line 252.  The code is:

================================================================
static int ssl_io_suck_read(SSL *ssl, char *buf, int len)
{
    ap_ctx *actx;
    struct ssl_io_suck_st *ss;
    request_rec *r = NULL;
    int rv;

    actx = (ap_ctx *)SSL_get_app_data2(ssl);
    if (actx != NULL)
        r = (request_rec *)ap_ctx_get(actx, "ssl::request_rec");

    rv = -1;
    if (r != NULL) {
        ss = ap_ctx_get(r->ctx, "ssl::io::suck"); <== error point
================================================================

Examining the data elements, it appears that actx is "ok" in that
actx->cr_entry.ce_key points to "ssl:request_rec".  The ce_val pointer is
what is assigned to pointer 'r'.

The contents of *r (request_rec) look suspcious as most of the fields appear
uninitialized, garbage, or null.  The only subfield that looks ok is
r->htaccess.dir, which points to my ServerRoot.  r->ctx is evidently not
initialized, which causes the execption in the subsequent call.

FWIW, the request_rec pointer r is different from the request_rec pointer in
read_request_line()/http_protocol.c further back in the call stack.

I also see that while Apache is suspended in debug, my browser is showing
the HTML portion of the Apache root page but with no images.

I don't know if this is enough info to suggest where the problem might lie.

Final question:

The comments in ssl_engine_io.c state that the ssl_io_suck* routines are
provided to allow SSL renegotiation on a per-directory basis.  I'm not too
sure what this means, but I don't think I need it (ie., I'm not adding
per-directory SSL directives such as requiring client certs).  Therefore it
appears that I can re-compile sl_engine_io.c with a -D SSL_CONSERVATIVE
directive.  Is there any reason that this would not be a reasonable
workaround?  Also, would I need to compile all of mod_ssl with this
definition, or only this individual source?

regards
Kirk




______________________________________________________________________
Apache Interface to OpenSSL (mod_ssl)                   www.modssl.org
User Support Mailing List                      [EMAIL PROTECTED]
Automated List Manager                            [EMAIL PROTECTED]

Reply via email to