File inn-perl-call-argv.dif of Package inn
--- ./innd/perl.c.orig 2008-07-10 14:57:22.000000000 +0000
+++ ./innd/perl.c 2008-07-10 14:57:45.000000000 +0000
@@ -246,10 +246,12 @@ PLstats(void)
else {
char *stats = NULL;
char *result;
+ char *argv[1];
ENTER;
SAVETMPS;
- perl_call_argv("filter_stats", G_EVAL | G_NOARGS, NULL);
+ argv[0] = NULL;
+ perl_call_argv("filter_stats", G_EVAL | G_NOARGS, argv);
SPAGAIN;
result = POPp;
if (result != NULL && *result)
--- ./lib/perl.c.orig 2008-07-10 14:54:29.000000000 +0000
+++ ./lib/perl.c 2008-07-10 14:56:52.000000000 +0000
@@ -69,9 +69,11 @@ PerlFilter(bool value)
if (!value) {
/* Execute an end function, if one is defined. */
if (perl_get_cv("filter_end", false) != NULL) {
+ char *argv[1] ;
ENTER;
SAVETMPS;
- perl_call_argv("filter_end", G_EVAL | G_DISCARD | G_NOARGS, NULL);
+ argv[0] = NULL;
+ perl_call_argv("filter_end", G_EVAL | G_DISCARD | G_NOARGS, argv);
if (SvTRUE(ERRSV)) {
syslog (L_ERROR, "SERVER perl function filter_end died: %s",
SvPV(ERRSV, PL_na));
@@ -172,11 +174,9 @@ int PERLreadfilter(char *filterfile, con
ENTER ;
SAVETMPS ;
- argv[0] = filterfile ;
- argv[1] = NULL ;
-
if (perl_get_cv("filter_before_reload", false) != NULL) {
- perl_call_argv("filter_before_reload",G_EVAL|G_DISCARD|G_NOARGS,NULL);
+ argv[0] = NULL;
+ perl_call_argv("filter_before_reload",G_EVAL|G_DISCARD|G_NOARGS,argv);
if (SvTRUE(ERRSV)) /* check $@ */ {
syslog (L_ERROR,"SERVER perl function filter_before_reload died: %s",
SvPV(ERRSV, PL_na)) ;
@@ -185,6 +185,9 @@ int PERLreadfilter(char *filterfile, con
}
}
+ argv[0] = filterfile ;
+ argv[1] = NULL ;
+
PerlSilence();
perl_call_argv ("_load_", 0, argv) ;
PerlUnSilence();
@@ -210,7 +213,8 @@ int PERLreadfilter(char *filterfile, con
}
if (perl_get_cv("filter_after_reload", false) != NULL) {
- perl_call_argv("filter_after_reload", G_EVAL|G_DISCARD|G_NOARGS, NULL);
+ argv[0] = NULL ;
+ perl_call_argv("filter_after_reload", G_EVAL|G_DISCARD|G_NOARGS, argv);
if (SvTRUE(ERRSV)) /* check $@ */ {
syslog (L_ERROR,"SERVER perl function filter_after_reload died: %s",
SvPV(ERRSV, PL_na)) ;
--- ./nnrpd/perl.c.orig 2008-07-10 14:57:58.000000000 +0000
+++ ./nnrpd/perl.c 2008-07-10 14:58:32.000000000 +0000
@@ -63,6 +63,7 @@ char *HandleHeaders(char *article)
HE *scan;
SV *modswitch;
int OtherSize;
+ char *argv[1];
if(!PerlLoaded) {
loadPerl();
@@ -112,7 +113,8 @@ char *HandleHeaders(char *article)
sv_setpv(body, article);
/* Call the filtering function */
- rc = perl_call_argv("filter_post", G_EVAL|G_SCALAR, NULL);
+ argv[0] = NULL;
+ rc = perl_call_argv("filter_post", G_EVAL|G_SCALAR, argv);
SPAGAIN;