Hi,
I am noticing a crash in my nginx module. The crash is happening after an
internal redirect. It's not always happening but for certain requests.
Besides the trace log I do not have much info about the request. In my
module, I am restoring the my module context in a similar fashion as the `
ngx_http_realip_get_module_ctx`. What I noticed is `r->pool == 0`. Why
would the r->pool be ever zero'ed?

The crash is happening in my get_module_ctx function which was called
immediately after returning from the ngx_http_internal_redirect call. Any
ideas on how to go about resolving this is greatly appreciated. Thanks.

Regards,
Dk.

static ngx_http_realip_ctx_t *
ngx_http_realip_get_module_ctx(ngx_http_request_t *r)
{
    ngx_pool_cleanup_t     *cln;
    ngx_http_realip_ctx_t  *ctx;

    ctx = ngx_http_get_module_ctx(r, ngx_http_realip_module);
    if (ctx == NULL && (r->internal || r->filter_finalize)) {
        /*
         * if module context was reset, the original address
         * can still be found in the cleanup handler
         */
        for (cln = r->pool->cleanup; cln; cln = cln->next) {
            if (cln->handler == ngx_http_realip_cleanup) {
                ctx = cln->data;
                break;
            }
        }
    }

    return ctx;
}
_______________________________________________
nginx-devel mailing list -- nginx-devel@nginx.org
To unsubscribe send an email to nginx-devel-le...@nginx.org

Reply via email to