diff options
Diffstat (limited to 'testing/postgresql/perl-5.14-fix.patch')
-rw-r--r-- | testing/postgresql/perl-5.14-fix.patch | 25 |
1 files changed, 25 insertions, 0 deletions
diff --git a/testing/postgresql/perl-5.14-fix.patch b/testing/postgresql/perl-5.14-fix.patch new file mode 100644 index 000000000..82ef7d688 --- /dev/null +++ b/testing/postgresql/perl-5.14-fix.patch @@ -0,0 +1,25 @@ +--- a/src/pl/plperl/plperl.c ++++ b/src/pl/plperl/plperl.c +@@ -926,7 +926,7 @@ plperl_trusted_init(void) + if (!isGV_with_GP(sv) || !GvCV(sv)) + continue; + SvREFCNT_dec(GvCV(sv)); /* free the CV */ +- GvCV(sv) = NULL; /* prevent call via GV */ ++ GvCV_set(sv, NULL); /* prevent call via GV */ + } + hv_clear(stash); + +--- a/src/pl/plperl/plperl.h ++++ b/src/pl/plperl/plperl.h +@@ -49,6 +49,11 @@ + (U32)HeKUTF8(he)) + #endif + ++/* supply GvCV_set if it's missing - ppport.h doesn't supply it, unfortunately */ ++#ifndef GvCV_set ++#define GvCV_set(gv, cv) (GvCV(gv) = cv) ++#endif ++ + /* declare routines from plperl.c for access by .xs files */ + HV *plperl_spi_exec(char *, int); + void plperl_return_next(SV *); |