summaryrefslogtreecommitdiff
path: root/lang
diff options
context:
space:
mode:
authormanu <manu@pkgsrc.org>2013-01-17 13:29:59 +0000
committermanu <manu@pkgsrc.org>2013-01-17 13:29:59 +0000
commita40154b37079d53cc734d7f517ebc08cb7e926c4 (patch)
tree2afd18d47ef3d2a7f1a5701e128a6f1b6752a81e /lang
parent0bfa134bfd6e6430cc720d8fbef9d950963d0f39 (diff)
downloadpkgsrc-a40154b37079d53cc734d7f517ebc08cb7e926c4.tar.gz
Work around a NULL dereference (bug report was submitted upstream)
Diffstat (limited to 'lang')
-rw-r--r--lang/perl5/Makefile4
-rw-r--r--lang/perl5/distinfo3
-rw-r--r--lang/perl5/patches/patch-hv.c37
3 files changed, 41 insertions, 3 deletions
diff --git a/lang/perl5/Makefile b/lang/perl5/Makefile
index a95a8bc72fc..87f7eea7926 100644
--- a/lang/perl5/Makefile
+++ b/lang/perl5/Makefile
@@ -1,10 +1,10 @@
-# $NetBSD: Makefile,v 1.193 2013/01/03 10:11:34 dholland Exp $
+# $NetBSD: Makefile,v 1.194 2013/01/17 13:29:59 manu Exp $
.include "license.mk"
.include "Makefile.common"
COMMENT= Practical Extraction and Report Language
-PKGREVISION= 2
+PKGREVISION= 3
CONFLICTS= perl-base-[0-9]* perl-thread-[0-9]* \
p5-CGI-2.66{,nb*} p5-CGI-2.75{,nb*} p5-CGI-2.75.[0-2] \
diff --git a/lang/perl5/distinfo b/lang/perl5/distinfo
index 08dcd8a085f..805c22af935 100644
--- a/lang/perl5/distinfo
+++ b/lang/perl5/distinfo
@@ -1,4 +1,4 @@
-$NetBSD: distinfo,v 1.90 2013/01/03 10:11:34 dholland Exp $
+$NetBSD: distinfo,v 1.91 2013/01/17 13:29:59 manu Exp $
SHA1 (perl-5.16.2.tar.gz) = 9e20e38e3460ebbac895341fd70a02189d03a490
RMD160 (perl-5.16.2.tar.gz) = 84f0233ac48059b4636661b023dd8a3389f9ae64
@@ -17,6 +17,7 @@ SHA1 (patch-cpan_Sys-Syslog_Syslog.xs) = 4413010d0b55a0ae636bca8ff3ace2ebc99e90b
SHA1 (patch-dist_Locale-Maketext_lib_Locale_Maketext.pm) = d44647f32d356030c8c2cd6346559f613a7fe459
SHA1 (patch-hints_netbsd.sh) = 8a0656a72e81461f461757712b7fc27ad8928028
SHA1 (patch-hints_solaris_2.sh) = 26f804234c07da04ebd6c33ce7ad54d94c746f1e
+SHA1 (patch-hv.c) = eaea29e1c59bf3b698478ba8ec3f1b25c4ed6cc8
SHA1 (patch-ta) = 51a3e02148e78eaab882125f859e59add39a4fbe
SHA1 (patch-zd) = 469602bc04b217f2d9929f5caeab43f77a74076f
SHA1 (patch-ze) = a719797ccf8bb09e75aacc1609408fb4afe6aa60
diff --git a/lang/perl5/patches/patch-hv.c b/lang/perl5/patches/patch-hv.c
new file mode 100644
index 00000000000..3b1e595264f
--- /dev/null
+++ b/lang/perl5/patches/patch-hv.c
@@ -0,0 +1,37 @@
+$NetBSD: patch-hv.c,v 1.1 2013/01/17 13:29:59 manu Exp $
+
+Work around a crash with apaache-1.3.42 and mod_perl-1.31:
+
+Program received signal SIGSEGV, Segmentation fault.
+[Switching to LWP 1]
+Perl_hv_undef_flags (my_perl=0xbb537800, hv=0x0, flags=0) at hv.c:1788
+1788 const bool save = !!SvREFCNT(hv);
+(gdb) bt
+#0 Perl_hv_undef_flags (my_perl=0xbb537800, hv=0x0, flags=0) at hv.c:1788
+#1 0xbb646f8e in perl_util_cleanup () from /usr/pkg/lib/httpd/mod_perl.so
+#2 0xbb639b10 in perl_shutdown () from /usr/pkg/lib/httpd/mod_perl.so
+#3 0xbb639ec3 in mp_dso_unload () from /usr/pkg/lib/httpd/mod_perl.so
+#4 0x08073524 in ap_clear_pool ()
+#5 0x08081956 in main ()
+
+
+--- hv.c.orig 2013-01-17 08:54:13.000000000 +0100
++++ hv.c 2013-01-17 08:55:42.000000000 +0100
+@@ -1784,14 +1784,16 @@
+ {
+ dVAR;
+ register XPVHV* xhv;
+ const char *name;
+- const bool save = !!SvREFCNT(hv);
++ bool save;
+
+ if (!hv)
+ return;
++
+ DEBUG_A(Perl_hv_assert(aTHX_ hv));
+ xhv = (XPVHV*)SvANY(hv);
++ save = !!SvREFCNT(hv);
+
+ /* The name must be deleted before the call to hfreeeeentries so that
+ CVs are anonymised properly. But the effective name must be pre-
+ served until after that call (and only deleted afterwards if the