You are viewing a plain text version of this content. The canonical link for it is here.
Posted to modperl-cvs@perl.apache.org by go...@apache.org on 2006/01/24 03:27:14 UTC
svn commit: r371775 - in /perl/modperl/trunk: Changes lib/ModPerl/Code.pm
src/modules/perl/modperl_cmd.c src/modules/perl/modperl_config.c
t/conf/extra.last.conf.in
Author: gozer
Date: Mon Jan 23 18:27:10 2006
New Revision: 371775
URL: http://svn.apache.org/viewcvs?rev=371775&view=rev
Log:
Resolves a critical bug in 'PerlSwitches +inherit' handling that was
causing segfaults under some usages.
This fix has the nice side-effect of introducing a new & slightly cleaner
syntax to specify inheritance of PerlSwitches: PerlOptions +InheritSwitches
Reported-By: "Eamon Daly" <ed...@nextwavemedia.com>
Report-Thread: http://thread.gmane.org/gmane.comp.apache.mod-perl/22750
Modified:
perl/modperl/trunk/Changes
perl/modperl/trunk/lib/ModPerl/Code.pm
perl/modperl/trunk/src/modules/perl/modperl_cmd.c
perl/modperl/trunk/src/modules/perl/modperl_config.c
perl/modperl/trunk/t/conf/extra.last.conf.in
Modified: perl/modperl/trunk/Changes
URL: http://svn.apache.org/viewcvs/perl/modperl/trunk/Changes?rev=371775&r1=371774&r2=371775&view=diff
==============================================================================
--- perl/modperl/trunk/Changes (original)
+++ perl/modperl/trunk/Changes Mon Jan 23 18:27:10 2006
@@ -12,6 +12,10 @@
=item 2.0.3-dev
+Fix 'PerlSwitches +inherit' that got broken somewhere along
+the way to 2.0. You can also use 'PerlOptions +InheritSwitches'
+for the same result. [Gozer]
+
Add perl API corresponding to User and Group directives in httpd.conf:
Apache2::ServerUtil->user_id and Apache2::ServerUtil->group_id
[Stas]
Modified: perl/modperl/trunk/lib/ModPerl/Code.pm
URL: http://svn.apache.org/viewcvs/perl/modperl/trunk/lib/ModPerl/Code.pm?rev=371775&r1=371774&r2=371775&view=diff
==============================================================================
--- perl/modperl/trunk/lib/ModPerl/Code.pm (original)
+++ perl/modperl/trunk/lib/ModPerl/Code.pm Mon Jan 23 18:27:10 2006
@@ -137,7 +137,7 @@
my @ithread_opts = qw(CLONE PARENT);
my %flags = (
Srv => ['NONE', @ithread_opts, qw(ENABLE AUTOLOAD MERGE_HANDLERS),
- @hook_flags, 'UNSET'],
+ @hook_flags, 'UNSET','INHERIT_SWITCHES'],
Dir => [qw(NONE PARSE_HEADERS SETUP_ENV MERGE_HANDLERS GLOBAL_REQUEST UNSET)],
Req => [qw(NONE SET_GLOBAL_REQUEST PARSE_HEADERS SETUP_ENV
CLEANUP_REGISTERED PERL_SET_ENV_DIR PERL_SET_ENV_SRV)],
Modified: perl/modperl/trunk/src/modules/perl/modperl_cmd.c
URL: http://svn.apache.org/viewcvs/perl/modperl/trunk/src/modules/perl/modperl_cmd.c?rev=371775&r1=371774&r2=371775&view=diff
==============================================================================
--- perl/modperl/trunk/src/modules/perl/modperl_cmd.c (original)
+++ perl/modperl/trunk/src/modules/perl/modperl_cmd.c Mon Jan 23 18:27:10 2006
@@ -156,7 +156,13 @@
return modperl_cmd_too_late(parms);
}
MP_TRACE_d(MP_FUNC, "arg = %s\n", arg);
- modperl_config_srv_argv_push(arg);
+
+ if(0 == strncasecmp(arg, "+inherit", 8)) {
+ modperl_cmd_options(parms, mconfig, "+InheritSwitches");
+ }
+ else {
+ modperl_config_srv_argv_push(arg);
+ }
return NULL;
}
Modified: perl/modperl/trunk/src/modules/perl/modperl_config.c
URL: http://svn.apache.org/viewcvs/perl/modperl/trunk/src/modules/perl/modperl_config.c?rev=371775&r1=371774&r2=371775&view=diff
==============================================================================
--- perl/modperl/trunk/src/modules/perl/modperl_config.c (original)
+++ perl/modperl/trunk/src/modules/perl/modperl_config.c Mon Jan 23 18:27:10 2006
@@ -302,9 +302,7 @@
merge_item(perl);
#endif
- if (add->argv->nelts == 2 &&
- strEQ(((char **)add->argv->elts)[1], "+inherit"))
- {
+ if (MpSrvINHERIT_SWITCHES(add)) {
/* only inherit base PerlSwitches if explicitly told to */
mrg->argv = base->argv;
}
Modified: perl/modperl/trunk/t/conf/extra.last.conf.in
URL: http://svn.apache.org/viewcvs/perl/modperl/trunk/t/conf/extra.last.conf.in?rev=371775&r1=371774&r2=371775&view=diff
==============================================================================
--- perl/modperl/trunk/t/conf/extra.last.conf.in (original)
+++ perl/modperl/trunk/t/conf/extra.last.conf.in Mon Jan 23 18:27:10 2006
@@ -94,3 +94,11 @@
=cut
PerlSetVar TestDirective__pod_cut_worked yes
+
+#This used to trigger a segfault on startup
+#See http://thread.gmane.org/gmane.comp.apache.mod-perl/22750
+<VirtualHost inherit>
+ PerlSwitches +inherit
+ PerlOptions +Parent
+ Perl 1
+</VirtualHost>