File: Fix_SIGSEGV_perl_parse.patch

package info (click to toggle)
libapache2-mod-perl2 2.0.11-4
  • links: PTS, VCS
  • area: main
  • in suites: bullseye
  • size: 12,008 kB
  • sloc: perl: 97,778; ansic: 14,487; makefile: 49; sh: 18
file content (29 lines) | stat: -rw-r--r-- 1,030 bytes parent folder | download
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;