1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
|
Description: Fix SIGSEGV crash due to wrong use of perl_parse()
Origin: https://svn.apache.org/viewvc?view=revision&revision=1886793
Bug-Ubuntu: https://bugs.launchpad.net/ubuntu/+source/libapache2-mod-perl2/+bug/1915959
Author: Charles Pigott <cpigott@rapitasystems.com>
Reviewed-by: gregor herrmann <gregoa@debian.org>
Last-Update: 2021-02-22
--- a/src/modules/perl/modperl_config.c
+++ b/src/modules/perl/modperl_config.c
@@ -163,7 +163,8 @@
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 @@
*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;
|