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 jk...@apache.org on 2013/06/24 12:29:02 UTC

svn commit: r1495982 - /perl/modperl/branches/httpd24/src/modules/perl/modperl_cmd.c

Author: jkaluza
Date: Mon Jun 24 10:29:02 2013
New Revision: 1495982

URL: http://svn.apache.org/r1495982
Log:
Make sure authn and authz providers are cleaned up in time

The authn and authz providers need to be registered in the configuration
pool rather than the server process pool.  The latter outlives the load
time of the mod_perl shared object, so cleanup hooks could get called
after the registered functions were unloaded, causing SIGSEGVs and other
undefined behaviour.

Fix suggested by Stefan Fritsch.

Bug-Debian: http://bugs.debian.org/711213

Modified:
    perl/modperl/branches/httpd24/src/modules/perl/modperl_cmd.c

Modified: perl/modperl/branches/httpd24/src/modules/perl/modperl_cmd.c
URL: http://svn.apache.org/viewvc/perl/modperl/branches/httpd24/src/modules/perl/modperl_cmd.c?rev=1495982&r1=1495981&r2=1495982&view=diff
==============================================================================
--- perl/modperl/branches/httpd24/src/modules/perl/modperl_cmd.c (original)
+++ perl/modperl/branches/httpd24/src/modules/perl/modperl_cmd.c Mon Jun 24 10:29:02 2013
@@ -419,7 +419,7 @@ MP_CMD_SRV_DECLARE(init_handlers)
 
 MP_CMD_SRV_DECLARE2(authz_provider)
 {
-    apr_pool_t *p = parms->server->process->pool;
+    apr_pool_t *p = parms->pool;
     char *name = apr_pstrdup(p, arg1);
     char *cb = apr_pstrdup(p, arg2);
 
@@ -431,7 +431,7 @@ MP_CMD_SRV_DECLARE2(authz_provider)
 
 MP_CMD_SRV_DECLARE2(authn_provider)
 {
-    apr_pool_t *p = parms->server->process->pool;
+    apr_pool_t *p = parms->pool;
     char *name = apr_pstrdup(p, arg1);
     char *cb = apr_pstrdup(p, arg2);