Randy Kobes wrote:

Unfortunately, I still get the same crash when run this way.
The trace is the same as what I posted earlier - what seems
to happen is that, within src/modules/perl/modperl_filter.c,

- in modperl_output_filter_handler,
      filter = modperl_filter_new(...);
is called, and the debugger reports some non-null value
for "filter".
- this then this gets passed to
      status = modperl_run_filter(filter);
- within modperl_run_filter a handler is created via
  handler = ((modperl_filter_ctx_t *)filter->f->ctx)->handler;
but the debugger reports that filter->f->ctx is null.

The modperl_output_filter_handler in code goes:


    if (((modperl_filter_ctx_t *)f->ctx)->sent_eos) {
        MP_TRACE_f(MP_FUNC,
                   MP_FILTER_NAME_FORMAT
                   "write_out: EOS was already sent, "
                   "passing through the brigade\n",
                   MP_FILTER_NAME(f));
        return ap_pass_brigade(f->next, bb);
    }
    else {
        filter = modperl_filter_new(f, bb, MP_OUTPUT_FILTER_MODE,
                                    0, 0, 0);
        status = modperl_run_filter(filter);
    }

So ((modperl_filter_ctx_t *)f->ctx) is non-NULL, when it checks for sent_eos, right? Otherwise it'll segfault right there. Then it goes through modperl_filter_new which simply stashes f into filter->f. When it comes back (modperl_filter_ctx_t *)filter->f->ctx) should be non-null as well. Is it?

__________________________________________________________________
Stas Bekman            JAm_pH ------> Just Another mod_perl Hacker
http://stason.org/     mod_perl Guide ---> http://perl.apache.org
mailto:[EMAIL PROTECTED] http://use.perl.org http://apacheweek.com
http://modperlbook.org http://apache.org   http://ticketmaster.com


--------------------------------------------------------------------- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]



Reply via email to