Author: stevehay Date: Mon Feb 22 14:22:21 2021 New Revision: 1886793 URL: http://svn.apache.org/viewvc?rev=1886793&view=rev Log: Fix SIGSEGV crash due to wrong use of perl_parse()
Patch by Charles Pigott <cpig...@rapitasystems.com>. Modified: perl/modperl/trunk/src/modules/perl/modperl_config.c Modified: perl/modperl/trunk/src/modules/perl/modperl_config.c URL: http://svn.apache.org/viewvc/perl/modperl/trunk/src/modules/perl/modperl_config.c?rev=1886793&r1=1886792&r2=1886793&view=diff ============================================================================== --- perl/modperl/trunk/src/modules/perl/modperl_config.c (original) +++ perl/modperl/trunk/src/modules/perl/modperl_config.c Mon Feb 22 14:22:21 2021 @@ -163,7 +163,8 @@ modperl_config_srv_t *modperl_config_srv scfg->PerlPostConfigRequire = apr_array_make(p, 1, sizeof(modperl_require_file_t *)); - scfg->argv = apr_array_make(p, 2, sizeof(char *)); + /* 2 arguments + NULL terminator */ + scfg->argv = apr_array_make(p, 3, sizeof(char *)); scfg->setvars = apr_table_make(p, 2); scfg->configvars = apr_table_make(p, 2); @@ -219,6 +220,9 @@ char **modperl_config_srv_argv_init(modp *argc = scfg->argv->nelts; + /* perl_parse() expects a NULL terminated argv array */ + modperl_config_srv_argv_push(NULL); + MP_TRACE_g_do(dump_argv(scfg)); return (char **)scfg->argv->elts;