Hi,

MP_FUNC is NULL unless MP_TRACE is set (modperl_common_log.h).

MP_CHECK_WBUCKET_INIT is defined as (modperl_util.h):

#define MP_CHECK_WBUCKET_INIT(func) \
    if (!rcfg->wbucket) { \
        Perl_croak(aTHX_ "%s: " func " can't be called "  \
                   "before the response phase", MP_FUNC); \
    }

It doesn't check for MP_TRACE and hence passes a NULL pointer to
Perl_croak(%s).

How about this fix?

Index: src/modules/perl/modperl_util.h
===================================================================
--- src/modules/perl/modperl_util.h     (revision 681109)
+++ src/modules/perl/modperl_util.h     (working copy)
@@ -20,11 +20,19 @@
 #include "modperl_common_util.h"

 /* check whether the response phase has been initialized already */
-#define MP_CHECK_WBUCKET_INIT(func) \
-    if (!rcfg->wbucket) { \
-        Perl_croak(aTHX_ "%s: " func " can't be called "  \
-                   "before the response phase", MP_FUNC); \
+#ifdef MP_TRACE
+#   define MP_CHECK_WBUCKET_INIT(func) \
+        if (!rcfg->wbucket) { \
+            Perl_croak(aTHX_ "%s: " func " can't be called " \
+                       "before the response phase", MP_FUNC); \
     }
+#else
+#   define MP_CHECK_WBUCKET_INIT(func) \
+        if (!rcfg->wbucket) { \
+            Perl_croak(aTHX_ func " can't be called " \
+                       "before the response phase"); \
+    }
+#endif

 /* turn off cgi header parsing. in case we are already inside
  *     modperl_callback_per_dir(MP_RESPONSE_HANDLER, r, MP_HOOK_RUN_FIRST);


--
Need professional mod_perl support?
Just hire me: [EMAIL PROTECTED]

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

Reply via email to