diff options
author | manu <manu@pkgsrc.org> | 2013-01-17 13:29:59 +0000 |
---|---|---|
committer | manu <manu@pkgsrc.org> | 2013-01-17 13:29:59 +0000 |
commit | a40154b37079d53cc734d7f517ebc08cb7e926c4 (patch) | |
tree | 2afd18d47ef3d2a7f1a5701e128a6f1b6752a81e /lang | |
parent | 0bfa134bfd6e6430cc720d8fbef9d950963d0f39 (diff) | |
download | pkgsrc-a40154b37079d53cc734d7f517ebc08cb7e926c4.tar.gz |
Work around a NULL dereference (bug report was submitted upstream)
Diffstat (limited to 'lang')
-rw-r--r-- | lang/perl5/Makefile | 4 | ||||
-rw-r--r-- | lang/perl5/distinfo | 3 | ||||
-rw-r--r-- | lang/perl5/patches/patch-hv.c | 37 |
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 |