Phil Pennock wrote:
-------------8<---------- Start Bug Report ------------8<----------
1. Problem Description:

If "PerlOptions -Enable" is set in global context in Apache config,
mod_perl segfaults.

I was experimenting, because of the support for cloned Perl instances
for differing vhosts, to see if the Perl handling could be enabled in only
the vhosts which explicitly required it, by disabling in global context
and explicit enabling.  Apparently not.  An error message and "don't be
stupid, and here's why it's stupid" is perhaps preferable to a segfault of
Apache.

Config to replicate, using Apache2 setup:

 LoadModule perl_module libexec/apache2/mod_perl.so
 <IfModule mod_perl.c>
   PerlModule Apache2
   PerlOptions -Enable
 </IfModule>

This using the relevant ports installed under FreeBSD, with whatever
test framework that invokes.  Removing "PerlOptions -Enable" avoids
the problem.

Thank you, Phil, for the proper bug report. It was easy to reproduce the problem.

For now, I think to just add an assert when one tries to do that on the top level. This is because we do many things on the top level. It's possible that will be able to still disable mod_perl for the top-level, but may try to look at that later.

Index: src/modules/perl/modperl_cmd.c
===================================================================
RCS file: /home/cvs/modperl-2.0/src/modules/perl/modperl_cmd.c,v
retrieving revision 1.60
diff -u -r1.60 modperl_cmd.c
--- src/modules/perl/modperl_cmd.c      16 Jun 2004 03:55:47 -0000      1.60
+++ src/modules/perl/modperl_cmd.c      7 Jul 2004 08:07:43 -0000
@@ -369,6 +369,12 @@
     const char *error;

     MP_TRACE_d(MP_FUNC, "arg = %s\n", arg);
+
+    /* the main server must not have mod_perl disabled (-Enable) */
+    if (strEQ(arg, "-Enable")) {
+        return "Top level 'PerlOption -Enable' is not allowed";
+    }
+
     if ((error = modperl_options_set(p, opts, arg)) && !is_per_dir) {
         /* maybe a per-directory option outside of a container */
         if (modperl_options_set(p, dcfg->flags, arg) == NULL) {



--
__________________________________________________________________
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