mirror of
https://git.FreeBSD.org/ports.git
synced 2024-11-20 00:21:35 +00:00
Add several bugfixes, imported from maint-5.10
(i.e. will be included into forthcoming 5.10.1).
This commit is contained in:
parent
30cb963e8f
commit
d701438448
Notes:
svn2git
2021-03-31 03:12:20 +00:00
svn path=/head/; revision=231575
@ -7,6 +7,7 @@
|
||||
|
||||
PORTNAME= perl
|
||||
PORTVERSION= ${PERL_VERSION}
|
||||
PORTREVISION= 1
|
||||
CATEGORIES= lang devel perl5
|
||||
MASTER_SITES= CPAN \
|
||||
${MASTER_SITE_LOCAL:S/$/:local/} \
|
||||
|
14
lang/perl5.10/files/patch-IO-Socket-INET-udp
Normal file
14
lang/perl5.10/files/patch-IO-Socket-INET-udp
Normal file
@ -0,0 +1,14 @@
|
||||
# http://perl5.git.perl.org/perl.git/commitdiff/7027b9a31bf80c5639c73f75155ed1a89c674c30?hp=f175cff5cac5f8199b897ce2f1c73312d99d5761
|
||||
diff --git a/ext/IO/lib/IO/Socket/INET.pm b/ext/IO/lib/IO/Socket/INET.pm
|
||||
index f8bb338..2f0e5d1 100644
|
||||
--- ext/IO/lib/IO/Socket/INET.pm
|
||||
+++ ext/IO/lib/IO/Socket/INET.pm
|
||||
@@ -27,7 +27,7 @@ my %socket_type = ( tcp => SOCK_STREAM,
|
||||
);
|
||||
my %proto_number;
|
||||
$proto_number{tcp} = Socket::IPPROTO_TCP() if defined &Socket::IPPROTO_TCP;
|
||||
-$proto_number{upd} = Socket::IPPROTO_UDP() if defined &Socket::IPPROTO_UDP;
|
||||
+$proto_number{udp} = Socket::IPPROTO_UDP() if defined &Socket::IPPROTO_UDP;
|
||||
$proto_number{icmp} = Socket::IPPROTO_ICMP() if defined &Socket::IPPROTO_ICMP;
|
||||
my %proto_name = reverse %proto_number;
|
||||
|
18
lang/perl5.10/files/patch-bug49003
Normal file
18
lang/perl5.10/files/patch-bug49003
Normal file
@ -0,0 +1,18 @@
|
||||
# http://rt.perl.org/rt3/Public/Bug/Display.html?id=49003
|
||||
# http://perl5.git.perl.org/perl.git/commitdiff/b376053de54af4268a31e5a60d1f9e57db30af11?hp=3a28f3fb1bfd44e4e3dfe6842af867c8c1c9de28
|
||||
diff --git a/pp_sys.c b/pp_sys.c
|
||||
index 66ca0fb..da07e46 100644
|
||||
--- pp_sys.c
|
||||
+++ pp_sys.c
|
||||
@@ -2999,10 +2999,9 @@ PP(pp_ftrread)
|
||||
effective = TRUE;
|
||||
break;
|
||||
|
||||
-
|
||||
case OP_FTEEXEC:
|
||||
#ifdef PERL_EFF_ACCESS
|
||||
- access_mode = W_OK;
|
||||
+ access_mode = X_OK;
|
||||
#else
|
||||
use_access = 0;
|
||||
#endif
|
44
lang/perl5.10/files/patch-bug52074-54566
Normal file
44
lang/perl5.10/files/patch-bug52074-54566
Normal file
@ -0,0 +1,44 @@
|
||||
# http://rt.perl.org/rt3/Public/Bug/Display.html?id=52074
|
||||
# http://rt.perl.org/rt3/Public/Bug/Display.html?id=54566
|
||||
# http://perl5.git.perl.org/perl.git/commitdiff/5562fa714b8071354c365365c26a950efa73179a?hp=b3562f19ee0d76b60d176a0b1cfdac4f5f36785c
|
||||
# http://perl5.git.perl.org/perl.git/commitdiff/ea86b3de3510ce31d0c08dd6a21701d74b25369d?hp=72bfe1b2b35945ea3c95d9b94ae2908121292236
|
||||
diff --git a/mg.c b/mg.c
|
||||
index c4d7aeb..91a36f2 100644
|
||||
--- mg.c
|
||||
+++ mg.c
|
||||
@@ -1543,10 +1543,11 @@ Perl_magic_setisa(pTHX_ SV *sv, MAGIC *mg)
|
||||
stash = GvSTASH(
|
||||
SvTYPE(mg->mg_obj) == SVt_PVGV
|
||||
? (GV*)mg->mg_obj
|
||||
- : (GV*)SvMAGIC(mg->mg_obj)->mg_obj
|
||||
+ : (GV*)mg_find(mg->mg_obj, PERL_MAGIC_isa)->mg_obj
|
||||
);
|
||||
|
||||
- mro_isa_changed_in(stash);
|
||||
+ if (stash)
|
||||
+ mro_isa_changed_in(stash);
|
||||
|
||||
return 0;
|
||||
}
|
||||
diff --git a/t/mro/pkg_gen.t b/t/mro/pkg_gen.t
|
||||
index 6a507ac..e1f5eb0 100644
|
||||
--- t/mro/pkg_gen.t
|
||||
+++ t/mro/pkg_gen.t
|
||||
@@ -4,7 +4,7 @@ use strict;
|
||||
use warnings;
|
||||
|
||||
chdir 't' if -d 't';
|
||||
-require q(./test.pl); plan(tests => 6);
|
||||
+require q(./test.pl); plan(tests => 7);
|
||||
|
||||
{
|
||||
package Foo;
|
||||
@@ -34,3 +34,7 @@ is(mro::get_pkg_gen('Foo'), 1, "pkg_gen 1 for undef %Pkg::");
|
||||
|
||||
delete $::{"Foo::"};
|
||||
is(mro::get_pkg_gen('Foo'), 0, 'pkg_gen 0 for delete $::{Pkg::}');
|
||||
+
|
||||
+delete $::{"Quux::"};
|
||||
+push @Quux::ISA, "Woot"; # should not segfault
|
||||
+ok(1, "No segfault on modification of ISA in a deleted stash");
|
||||
|
15
lang/perl5.10/files/patch-bug52658
Normal file
15
lang/perl5.10/files/patch-bug52658
Normal file
@ -0,0 +1,15 @@
|
||||
# http://rt.perl.org/rt3/Public/Bug/Display.html?id=52658
|
||||
# http://perl5.git.perl.org/perl.git/commitdiff/62b40d2474e7487e6909e1872b6bccdf812c6818?hp=d49025b75d9b5002071bd1a4210654dab5663ef0#patch1
|
||||
diff --git a/pp_ctl.c b/pp_ctl.c
|
||||
index 7a377f0..88269a7 100644
|
||||
--- pp_ctl.c
|
||||
+++ pp_ctl.c
|
||||
@@ -218,7 +218,6 @@ PP(pp_substcont)
|
||||
if (!(cx->sb_rxtainted & 2) && SvTAINTED(TOPs))
|
||||
cx->sb_rxtainted |= 2;
|
||||
sv_catsv(dstr, POPs);
|
||||
- FREETMPS; /* Prevent excess tmp stack */
|
||||
|
||||
/* Are we done */
|
||||
if (cx->sb_once || !CALLREGEXEC(rx, s, cx->sb_strend, orig,
|
||||
|
15
lang/perl5.10/files/patch-bug52740
Normal file
15
lang/perl5.10/files/patch-bug52740
Normal file
@ -0,0 +1,15 @@
|
||||
# http://rt.perl.org/rt3/Public/Bug/Display.html?id=52740
|
||||
# http://perl5.git.perl.org/perl.git/commitdiff/785bee4f7cf89837cba8e6e0859abbb4b407e1f1?hp=90e91dd8c9549b16c38f6ab2e9fa25c7ea28dff8
|
||||
diff --git a/sv.c b/sv.c
|
||||
index f721e6f..5fcf018 100644
|
||||
--- sv.c
|
||||
+++ sv.c
|
||||
@@ -3717,7 +3717,7 @@ Perl_sv_setsv_flags(pTHX_ SV *dstr, register SV* sstr, const I32 flags)
|
||||
Perl_croak(aTHX_ "Cannot copy to %s", type);
|
||||
} else if (sflags & SVf_ROK) {
|
||||
if (isGV_with_GP(dstr) && dtype == SVt_PVGV
|
||||
- && SvTYPE(SvRV(sstr)) == SVt_PVGV) {
|
||||
+ && SvTYPE(SvRV(sstr)) == SVt_PVGV && isGV_with_GP(SvRV(sstr))) {
|
||||
sstr = SvRV(sstr);
|
||||
if (sstr == dstr) {
|
||||
if (GvIMPORTED(dstr) != GVf_IMPORTED
|
77
lang/perl5.10/files/patch-bug54186
Normal file
77
lang/perl5.10/files/patch-bug54186
Normal file
@ -0,0 +1,77 @@
|
||||
# http://rt.perl.org/rt3/Public/Bug/Display.html?id=54186
|
||||
# http://perl5.git.perl.org/perl.git/commitdiff/a5d752217825fadff051e943940b4abad8e8b552?hp=8d2082b01041d30d9a510164df9c5e4703949441
|
||||
diff --git a/ext/POSIX/Makefile.PL b/ext/POSIX/Makefile.PL
|
||||
index bd93e59..5f6679d 100644
|
||||
--- ext/POSIX/Makefile.PL
|
||||
+++ ext/POSIX/Makefile.PL
|
||||
@@ -48,13 +48,11 @@ my @names =
|
||||
MAX_INPUT MB_LEN_MAX MSG_CTRUNC MSG_DONTROUTE MSG_EOR MSG_OOB MSG_PEEK
|
||||
MSG_TRUNC MSG_WAITALL NAME_MAX NCCS NGROUPS_MAX NOFLSH OPEN_MAX OPOST
|
||||
PARENB PARMRK PARODD PATH_MAX PIPE_BUF RAND_MAX R_OK SCHAR_MAX
|
||||
- SCHAR_MIN SEEK_CUR SEEK_END SEEK_SET SHRT_MAX SHRT_MIN SIGABRT SIGALRM
|
||||
+ SCHAR_MIN SHRT_MAX SHRT_MIN SIGABRT SIGALRM
|
||||
SIGCHLD SIGCONT SIGFPE SIGHUP SIGILL SIGINT SIGKILL SIGPIPE SIGQUIT
|
||||
SIGSEGV SIGSTOP SIGTERM SIGTSTP SIGTTIN SIGTTOU
|
||||
SIGUSR1 SIGUSR2 SIG_BLOCK SIG_SETMASK SIG_UNBLOCK SSIZE_MAX
|
||||
- STDERR_FILENO STDIN_FILENO STDOUT_FILENO STREAM_MAX
|
||||
- S_IRGRP S_IROTH S_IRUSR S_IRWXG S_IRWXO S_IRWXU S_ISGID S_ISUID
|
||||
- S_IWGRP S_IWOTH S_IWUSR S_IXGRP S_IXOTH S_IXUSR TCIFLUSH TCIOFF
|
||||
+ STDERR_FILENO STDIN_FILENO STDOUT_FILENO STREAM_MAX TCIFLUSH TCIOFF
|
||||
TCIOFLUSH TCION TCOFLUSH TCOOFF TCOON TCSADRAIN TCSAFLUSH TCSANOW
|
||||
TMP_MAX TOSTOP TZNAME_MAX VEOF VEOL VERASE VINTR VKILL VMIN VQUIT
|
||||
VSTART VSTOP VSUSP VTIME WNOHANG WUNTRACED W_OK X_OK
|
||||
diff --git a/ext/POSIX/POSIX.pm b/ext/POSIX/POSIX.pm
|
||||
index fbbd253..97d0b2c 100644
|
||||
--- ext/POSIX/POSIX.pm
|
||||
+++ ext/POSIX/POSIX.pm
|
||||
@@ -13,7 +13,9 @@ use XSLoader ();
|
||||
use Fcntl qw(FD_CLOEXEC F_DUPFD F_GETFD F_GETFL F_GETLK F_RDLCK F_SETFD
|
||||
F_SETFL F_SETLK F_SETLKW F_UNLCK F_WRLCK O_ACCMODE O_APPEND
|
||||
O_CREAT O_EXCL O_NOCTTY O_NONBLOCK O_RDONLY O_RDWR O_TRUNC
|
||||
- O_WRONLY);
|
||||
+ O_WRONLY SEEK_CUR SEEK_END SEEK_SET
|
||||
+ S_IRGRP S_IROTH S_IRUSR S_IRWXG S_IRWXO S_IRWXU S_ISGID S_ISUID
|
||||
+ S_IWGRP S_IWOTH S_IWUSR S_IXGRP S_IXOTH S_IXUSR);
|
||||
|
||||
# Grandfather old foo_h form to new :foo_h form
|
||||
my $loaded;
|
||||
diff --git a/t/lib/proxy_constant_subs.t b/t/lib/proxy_constant_subs.t
|
||||
index 4af73d3..45b0a54 100644
|
||||
--- t/lib/proxy_constant_subs.t
|
||||
+++ t/lib/proxy_constant_subs.t
|
||||
@@ -7,20 +7,20 @@ BEGIN {
|
||||
print "1..0 # Skip -- Perl configured without B module\n";
|
||||
exit 0;
|
||||
}
|
||||
- if ($Config::Config{'extensions'} !~ /\bPOSIX\b/) {
|
||||
- print "1..0 # Skip -- Perl configured without POSIX\n";
|
||||
+ if ($Config::Config{'extensions'} !~ /\bFcntl\b/) {
|
||||
+ print "1..0 # Skip -- Perl configured without Fcntl\n";
|
||||
exit 0;
|
||||
}
|
||||
- # errno is a real subroutine, and acts as control
|
||||
+ # S_IFMT is a real subroutine, and acts as control
|
||||
# SEEK_SET is a proxy constant subroutine.
|
||||
- @symbols = qw(errno SEEK_SET);
|
||||
+ @symbols = qw(S_IFMT SEEK_SET);
|
||||
}
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use Test::More tests => 4 * @symbols;
|
||||
use B qw(svref_2object GVf_IMPORTED_CV);
|
||||
-use POSIX @symbols;
|
||||
+use Fcntl @symbols;
|
||||
|
||||
# GVf_IMPORTED_CV should not be set on the original, but should be set on the
|
||||
# imported GV.
|
||||
@@ -29,7 +29,7 @@ foreach my $symbol (@symbols) {
|
||||
my ($ps, $ms);
|
||||
{
|
||||
no strict 'refs';
|
||||
- $ps = svref_2object(\*{"POSIX::$symbol"});
|
||||
+ $ps = svref_2object(\*{"Fcntl::$symbol"});
|
||||
$ms = svref_2object(\*{"::$symbol"});
|
||||
}
|
||||
isa_ok($ps, 'B::GV');
|
||||
|
29
lang/perl5.10/files/patch-bug54758
Normal file
29
lang/perl5.10/files/patch-bug54758
Normal file
@ -0,0 +1,29 @@
|
||||
# http://rt.perl.org/rt3/Public/Bug/Display.html?id=54758
|
||||
# http://perl5.git.perl.org/perl.git/commitdiff/62b40d2474e7487e6909e1872b6bccdf812c6818?hp=d49025b75d9b5002071bd1a4210654dab5663ef0#patch1
|
||||
diff --git a/pp_sort.c b/pp_sort.c
|
||||
index 9fe0dad..edfdadf 100644
|
||||
--- pp_sort.c
|
||||
+++ pp_sort.c
|
||||
@@ -1557,11 +1557,12 @@ PP(pp_sort)
|
||||
max = AvFILL(av) + 1;
|
||||
if (SvMAGICAL(av)) {
|
||||
MEXTEND(SP, max);
|
||||
- p2 = SP;
|
||||
for (i=0; i < max; i++) {
|
||||
SV **svp = av_fetch(av, i, FALSE);
|
||||
*SP++ = (svp) ? *svp : NULL;
|
||||
}
|
||||
+ SP--;
|
||||
+ p1 = p2 = SP - (max-1);
|
||||
}
|
||||
else {
|
||||
if (SvREADONLY(av))
|
||||
@@ -1717,7 +1718,7 @@ PP(pp_sort)
|
||||
SvREADONLY_off(av);
|
||||
else if (av && !sorting_av) {
|
||||
/* simulate pp_aassign of tied AV */
|
||||
- SV** const base = ORIGMARK+1;
|
||||
+ SV** const base = MARK+1;
|
||||
for (i=0; i < max; i++) {
|
||||
base[i] = newSVsv(base[i]);
|
||||
}
|
15
lang/perl5.10/files/patch-bug54934
Normal file
15
lang/perl5.10/files/patch-bug54934
Normal file
@ -0,0 +1,15 @@
|
||||
# http://rt.perl.org/rt3/Public/Bug/Display.html?id=49003
|
||||
# http://perl5.git.perl.org/perl.git/commitdiff/5a33563ff27918110ac4f876f12dae861e2d2fa2?hp=24ead1638d1eb17b67e49c614831261308ed561f
|
||||
diff --git a/ext/PerlIO/via/via.xs b/ext/PerlIO/via/via.xs
|
||||
index 3bc3cbb..5e6ddd3 100644
|
||||
--- ext/PerlIO/via/via.xs
|
||||
+++ ext/PerlIO/via/via.xs
|
||||
@@ -89,7 +89,7 @@ PerlIOVia_method(pTHX_ PerlIO * f, const char *method, CV ** save, int flags,
|
||||
if (!s->fh) {
|
||||
GV *gv = newGVgen(HvNAME_get(s->stash));
|
||||
GvIOp(gv) = newIO();
|
||||
- s->fh = newRV_noinc((SV *) gv);
|
||||
+ s->fh = newRV((SV *) gv);
|
||||
s->io = GvIOp(gv);
|
||||
}
|
||||
IoIFP(s->io) = PerlIONext(f);
|
31
lang/perl5.10/files/patch-bug56908
Normal file
31
lang/perl5.10/files/patch-bug56908
Normal file
@ -0,0 +1,31 @@
|
||||
# http://rt.perl.org/rt3/Public/Bug/Display.html?id=56908
|
||||
# http://perl5.git.perl.org/perl.git/commitdiff/b17f5ab768c4daa8faac6c85c0c20d3895f406e1?hp=7ee5fac837a8a4ebf1956da1b1d252aa82fe506d
|
||||
diff --git a/hv.c b/hv.c
|
||||
index 3d4d3af..24d9150 100644
|
||||
--- hv.c
|
||||
+++ hv.c
|
||||
@@ -1985,6 +1985,7 @@ Perl_hv_kill_backrefs(pTHX_ HV *hv) {
|
||||
if (av) {
|
||||
HvAUX(hv)->xhv_backreferences = 0;
|
||||
Perl_sv_kill_backrefs(aTHX_ (SV*) hv, av);
|
||||
+ SvREFCNT_dec(av);
|
||||
}
|
||||
}
|
||||
|
||||
diff --git a/sv.c b/sv.c
|
||||
index 04d6e43..4792ad1 100644
|
||||
--- sv.c
|
||||
+++ sv.c
|
||||
@@ -10784,10 +10784,11 @@ Perl_sv_dup(pTHX_ const SV *const sstr, CLONE_PARAMS *const param)
|
||||
daux->xhv_eiter = saux->xhv_eiter
|
||||
? he_dup(saux->xhv_eiter,
|
||||
(bool)!!HvSHAREKEYS(sstr), param) : 0;
|
||||
+ /* backref array needs refcnt=2; see sv_add_backref */
|
||||
daux->xhv_backreferences =
|
||||
saux->xhv_backreferences
|
||||
? (AV*) SvREFCNT_inc(
|
||||
- sv_dup((SV*)saux->xhv_backreferences, param))
|
||||
+ sv_dup_inc((SV*)saux->xhv_backreferences, param))
|
||||
: 0;
|
||||
|
||||
daux->xhv_mro_meta = saux->xhv_mro_meta
|
16
lang/perl5.10/files/patch-bug59516
Normal file
16
lang/perl5.10/files/patch-bug59516
Normal file
@ -0,0 +1,16 @@
|
||||
# http://rt.perl.org/rt3/Public/Bug/Display.html?id=59516
|
||||
# http://perl5.git.perl.org/perl.git/commitdiff/b023a8eeff463528d4a2b46396f79056c0ef9677?hp=a954f6ee3112c0edfbc59783d1b424d995122784
|
||||
diff --git a/regcomp.c b/regcomp.c
|
||||
index 54347cc..68cc58c 100644
|
||||
--- regcomp.c
|
||||
+++ regcomp.c
|
||||
@@ -8350,6 +8350,9 @@ parseit:
|
||||
*STRING(ret)= (char)value;
|
||||
STR_LEN(ret)= 1;
|
||||
RExC_emit += STR_SZ(1);
|
||||
+ if (listsv) {
|
||||
+ SvREFCNT_dec(listsv);
|
||||
+ }
|
||||
return ret;
|
||||
}
|
||||
/* optimize case-insensitive simple patterns (e.g. /[a-z]/i) */
|
16
lang/perl5.10/files/patch-qr-leak
Normal file
16
lang/perl5.10/files/patch-qr-leak
Normal file
@ -0,0 +1,16 @@
|
||||
# http://perl5.git.perl.org/perl.git/commitdiff/a954f6ee3112c0edfbc59783d1b424d995122784?hp=711690a16d2a16be7070e06779c46a6d8f482689
|
||||
diff --git a/pp_hot.c b/pp_hot.c
|
||||
index 57fa328..4a4e9e8 100644
|
||||
--- pp_hot.c
|
||||
+++ pp_hot.c
|
||||
@@ -1198,6 +1198,9 @@ PP(pp_qr)
|
||||
if (rx->extflags & RXf_TAINTED)
|
||||
SvTAINTED_on(rv);
|
||||
sv_magic(sv,(SV*)ReREFCNT_inc(rx), PERL_MAGIC_qr,0,0);
|
||||
+ if (pkg) {
|
||||
+ SvREFCNT_dec(pkg);
|
||||
+ }
|
||||
XPUSHs(rv);
|
||||
RETURN;
|
||||
}
|
||||
|
@ -7,6 +7,7 @@
|
||||
|
||||
PORTNAME= perl
|
||||
PORTVERSION= ${PERL_VERSION}
|
||||
PORTREVISION= 1
|
||||
CATEGORIES= lang devel perl5
|
||||
MASTER_SITES= CPAN \
|
||||
${MASTER_SITE_LOCAL:S/$/:local/} \
|
||||
|
14
lang/perl5.12/files/patch-IO-Socket-INET-udp
Normal file
14
lang/perl5.12/files/patch-IO-Socket-INET-udp
Normal file
@ -0,0 +1,14 @@
|
||||
# http://perl5.git.perl.org/perl.git/commitdiff/7027b9a31bf80c5639c73f75155ed1a89c674c30?hp=f175cff5cac5f8199b897ce2f1c73312d99d5761
|
||||
diff --git a/ext/IO/lib/IO/Socket/INET.pm b/ext/IO/lib/IO/Socket/INET.pm
|
||||
index f8bb338..2f0e5d1 100644
|
||||
--- ext/IO/lib/IO/Socket/INET.pm
|
||||
+++ ext/IO/lib/IO/Socket/INET.pm
|
||||
@@ -27,7 +27,7 @@ my %socket_type = ( tcp => SOCK_STREAM,
|
||||
);
|
||||
my %proto_number;
|
||||
$proto_number{tcp} = Socket::IPPROTO_TCP() if defined &Socket::IPPROTO_TCP;
|
||||
-$proto_number{upd} = Socket::IPPROTO_UDP() if defined &Socket::IPPROTO_UDP;
|
||||
+$proto_number{udp} = Socket::IPPROTO_UDP() if defined &Socket::IPPROTO_UDP;
|
||||
$proto_number{icmp} = Socket::IPPROTO_ICMP() if defined &Socket::IPPROTO_ICMP;
|
||||
my %proto_name = reverse %proto_number;
|
||||
|
18
lang/perl5.12/files/patch-bug49003
Normal file
18
lang/perl5.12/files/patch-bug49003
Normal file
@ -0,0 +1,18 @@
|
||||
# http://rt.perl.org/rt3/Public/Bug/Display.html?id=49003
|
||||
# http://perl5.git.perl.org/perl.git/commitdiff/b376053de54af4268a31e5a60d1f9e57db30af11?hp=3a28f3fb1bfd44e4e3dfe6842af867c8c1c9de28
|
||||
diff --git a/pp_sys.c b/pp_sys.c
|
||||
index 66ca0fb..da07e46 100644
|
||||
--- pp_sys.c
|
||||
+++ pp_sys.c
|
||||
@@ -2999,10 +2999,9 @@ PP(pp_ftrread)
|
||||
effective = TRUE;
|
||||
break;
|
||||
|
||||
-
|
||||
case OP_FTEEXEC:
|
||||
#ifdef PERL_EFF_ACCESS
|
||||
- access_mode = W_OK;
|
||||
+ access_mode = X_OK;
|
||||
#else
|
||||
use_access = 0;
|
||||
#endif
|
44
lang/perl5.12/files/patch-bug52074-54566
Normal file
44
lang/perl5.12/files/patch-bug52074-54566
Normal file
@ -0,0 +1,44 @@
|
||||
# http://rt.perl.org/rt3/Public/Bug/Display.html?id=52074
|
||||
# http://rt.perl.org/rt3/Public/Bug/Display.html?id=54566
|
||||
# http://perl5.git.perl.org/perl.git/commitdiff/5562fa714b8071354c365365c26a950efa73179a?hp=b3562f19ee0d76b60d176a0b1cfdac4f5f36785c
|
||||
# http://perl5.git.perl.org/perl.git/commitdiff/ea86b3de3510ce31d0c08dd6a21701d74b25369d?hp=72bfe1b2b35945ea3c95d9b94ae2908121292236
|
||||
diff --git a/mg.c b/mg.c
|
||||
index c4d7aeb..91a36f2 100644
|
||||
--- mg.c
|
||||
+++ mg.c
|
||||
@@ -1543,10 +1543,11 @@ Perl_magic_setisa(pTHX_ SV *sv, MAGIC *mg)
|
||||
stash = GvSTASH(
|
||||
SvTYPE(mg->mg_obj) == SVt_PVGV
|
||||
? (GV*)mg->mg_obj
|
||||
- : (GV*)SvMAGIC(mg->mg_obj)->mg_obj
|
||||
+ : (GV*)mg_find(mg->mg_obj, PERL_MAGIC_isa)->mg_obj
|
||||
);
|
||||
|
||||
- mro_isa_changed_in(stash);
|
||||
+ if (stash)
|
||||
+ mro_isa_changed_in(stash);
|
||||
|
||||
return 0;
|
||||
}
|
||||
diff --git a/t/mro/pkg_gen.t b/t/mro/pkg_gen.t
|
||||
index 6a507ac..e1f5eb0 100644
|
||||
--- t/mro/pkg_gen.t
|
||||
+++ t/mro/pkg_gen.t
|
||||
@@ -4,7 +4,7 @@ use strict;
|
||||
use warnings;
|
||||
|
||||
chdir 't' if -d 't';
|
||||
-require q(./test.pl); plan(tests => 6);
|
||||
+require q(./test.pl); plan(tests => 7);
|
||||
|
||||
{
|
||||
package Foo;
|
||||
@@ -34,3 +34,7 @@ is(mro::get_pkg_gen('Foo'), 1, "pkg_gen 1 for undef %Pkg::");
|
||||
|
||||
delete $::{"Foo::"};
|
||||
is(mro::get_pkg_gen('Foo'), 0, 'pkg_gen 0 for delete $::{Pkg::}');
|
||||
+
|
||||
+delete $::{"Quux::"};
|
||||
+push @Quux::ISA, "Woot"; # should not segfault
|
||||
+ok(1, "No segfault on modification of ISA in a deleted stash");
|
||||
|
15
lang/perl5.12/files/patch-bug52658
Normal file
15
lang/perl5.12/files/patch-bug52658
Normal file
@ -0,0 +1,15 @@
|
||||
# http://rt.perl.org/rt3/Public/Bug/Display.html?id=52658
|
||||
# http://perl5.git.perl.org/perl.git/commitdiff/62b40d2474e7487e6909e1872b6bccdf812c6818?hp=d49025b75d9b5002071bd1a4210654dab5663ef0#patch1
|
||||
diff --git a/pp_ctl.c b/pp_ctl.c
|
||||
index 7a377f0..88269a7 100644
|
||||
--- pp_ctl.c
|
||||
+++ pp_ctl.c
|
||||
@@ -218,7 +218,6 @@ PP(pp_substcont)
|
||||
if (!(cx->sb_rxtainted & 2) && SvTAINTED(TOPs))
|
||||
cx->sb_rxtainted |= 2;
|
||||
sv_catsv(dstr, POPs);
|
||||
- FREETMPS; /* Prevent excess tmp stack */
|
||||
|
||||
/* Are we done */
|
||||
if (cx->sb_once || !CALLREGEXEC(rx, s, cx->sb_strend, orig,
|
||||
|
15
lang/perl5.12/files/patch-bug52740
Normal file
15
lang/perl5.12/files/patch-bug52740
Normal file
@ -0,0 +1,15 @@
|
||||
# http://rt.perl.org/rt3/Public/Bug/Display.html?id=52740
|
||||
# http://perl5.git.perl.org/perl.git/commitdiff/785bee4f7cf89837cba8e6e0859abbb4b407e1f1?hp=90e91dd8c9549b16c38f6ab2e9fa25c7ea28dff8
|
||||
diff --git a/sv.c b/sv.c
|
||||
index f721e6f..5fcf018 100644
|
||||
--- sv.c
|
||||
+++ sv.c
|
||||
@@ -3717,7 +3717,7 @@ Perl_sv_setsv_flags(pTHX_ SV *dstr, register SV* sstr, const I32 flags)
|
||||
Perl_croak(aTHX_ "Cannot copy to %s", type);
|
||||
} else if (sflags & SVf_ROK) {
|
||||
if (isGV_with_GP(dstr) && dtype == SVt_PVGV
|
||||
- && SvTYPE(SvRV(sstr)) == SVt_PVGV) {
|
||||
+ && SvTYPE(SvRV(sstr)) == SVt_PVGV && isGV_with_GP(SvRV(sstr))) {
|
||||
sstr = SvRV(sstr);
|
||||
if (sstr == dstr) {
|
||||
if (GvIMPORTED(dstr) != GVf_IMPORTED
|
77
lang/perl5.12/files/patch-bug54186
Normal file
77
lang/perl5.12/files/patch-bug54186
Normal file
@ -0,0 +1,77 @@
|
||||
# http://rt.perl.org/rt3/Public/Bug/Display.html?id=54186
|
||||
# http://perl5.git.perl.org/perl.git/commitdiff/a5d752217825fadff051e943940b4abad8e8b552?hp=8d2082b01041d30d9a510164df9c5e4703949441
|
||||
diff --git a/ext/POSIX/Makefile.PL b/ext/POSIX/Makefile.PL
|
||||
index bd93e59..5f6679d 100644
|
||||
--- ext/POSIX/Makefile.PL
|
||||
+++ ext/POSIX/Makefile.PL
|
||||
@@ -48,13 +48,11 @@ my @names =
|
||||
MAX_INPUT MB_LEN_MAX MSG_CTRUNC MSG_DONTROUTE MSG_EOR MSG_OOB MSG_PEEK
|
||||
MSG_TRUNC MSG_WAITALL NAME_MAX NCCS NGROUPS_MAX NOFLSH OPEN_MAX OPOST
|
||||
PARENB PARMRK PARODD PATH_MAX PIPE_BUF RAND_MAX R_OK SCHAR_MAX
|
||||
- SCHAR_MIN SEEK_CUR SEEK_END SEEK_SET SHRT_MAX SHRT_MIN SIGABRT SIGALRM
|
||||
+ SCHAR_MIN SHRT_MAX SHRT_MIN SIGABRT SIGALRM
|
||||
SIGCHLD SIGCONT SIGFPE SIGHUP SIGILL SIGINT SIGKILL SIGPIPE SIGQUIT
|
||||
SIGSEGV SIGSTOP SIGTERM SIGTSTP SIGTTIN SIGTTOU
|
||||
SIGUSR1 SIGUSR2 SIG_BLOCK SIG_SETMASK SIG_UNBLOCK SSIZE_MAX
|
||||
- STDERR_FILENO STDIN_FILENO STDOUT_FILENO STREAM_MAX
|
||||
- S_IRGRP S_IROTH S_IRUSR S_IRWXG S_IRWXO S_IRWXU S_ISGID S_ISUID
|
||||
- S_IWGRP S_IWOTH S_IWUSR S_IXGRP S_IXOTH S_IXUSR TCIFLUSH TCIOFF
|
||||
+ STDERR_FILENO STDIN_FILENO STDOUT_FILENO STREAM_MAX TCIFLUSH TCIOFF
|
||||
TCIOFLUSH TCION TCOFLUSH TCOOFF TCOON TCSADRAIN TCSAFLUSH TCSANOW
|
||||
TMP_MAX TOSTOP TZNAME_MAX VEOF VEOL VERASE VINTR VKILL VMIN VQUIT
|
||||
VSTART VSTOP VSUSP VTIME WNOHANG WUNTRACED W_OK X_OK
|
||||
diff --git a/ext/POSIX/POSIX.pm b/ext/POSIX/POSIX.pm
|
||||
index fbbd253..97d0b2c 100644
|
||||
--- ext/POSIX/POSIX.pm
|
||||
+++ ext/POSIX/POSIX.pm
|
||||
@@ -13,7 +13,9 @@ use XSLoader ();
|
||||
use Fcntl qw(FD_CLOEXEC F_DUPFD F_GETFD F_GETFL F_GETLK F_RDLCK F_SETFD
|
||||
F_SETFL F_SETLK F_SETLKW F_UNLCK F_WRLCK O_ACCMODE O_APPEND
|
||||
O_CREAT O_EXCL O_NOCTTY O_NONBLOCK O_RDONLY O_RDWR O_TRUNC
|
||||
- O_WRONLY);
|
||||
+ O_WRONLY SEEK_CUR SEEK_END SEEK_SET
|
||||
+ S_IRGRP S_IROTH S_IRUSR S_IRWXG S_IRWXO S_IRWXU S_ISGID S_ISUID
|
||||
+ S_IWGRP S_IWOTH S_IWUSR S_IXGRP S_IXOTH S_IXUSR);
|
||||
|
||||
# Grandfather old foo_h form to new :foo_h form
|
||||
my $loaded;
|
||||
diff --git a/t/lib/proxy_constant_subs.t b/t/lib/proxy_constant_subs.t
|
||||
index 4af73d3..45b0a54 100644
|
||||
--- t/lib/proxy_constant_subs.t
|
||||
+++ t/lib/proxy_constant_subs.t
|
||||
@@ -7,20 +7,20 @@ BEGIN {
|
||||
print "1..0 # Skip -- Perl configured without B module\n";
|
||||
exit 0;
|
||||
}
|
||||
- if ($Config::Config{'extensions'} !~ /\bPOSIX\b/) {
|
||||
- print "1..0 # Skip -- Perl configured without POSIX\n";
|
||||
+ if ($Config::Config{'extensions'} !~ /\bFcntl\b/) {
|
||||
+ print "1..0 # Skip -- Perl configured without Fcntl\n";
|
||||
exit 0;
|
||||
}
|
||||
- # errno is a real subroutine, and acts as control
|
||||
+ # S_IFMT is a real subroutine, and acts as control
|
||||
# SEEK_SET is a proxy constant subroutine.
|
||||
- @symbols = qw(errno SEEK_SET);
|
||||
+ @symbols = qw(S_IFMT SEEK_SET);
|
||||
}
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use Test::More tests => 4 * @symbols;
|
||||
use B qw(svref_2object GVf_IMPORTED_CV);
|
||||
-use POSIX @symbols;
|
||||
+use Fcntl @symbols;
|
||||
|
||||
# GVf_IMPORTED_CV should not be set on the original, but should be set on the
|
||||
# imported GV.
|
||||
@@ -29,7 +29,7 @@ foreach my $symbol (@symbols) {
|
||||
my ($ps, $ms);
|
||||
{
|
||||
no strict 'refs';
|
||||
- $ps = svref_2object(\*{"POSIX::$symbol"});
|
||||
+ $ps = svref_2object(\*{"Fcntl::$symbol"});
|
||||
$ms = svref_2object(\*{"::$symbol"});
|
||||
}
|
||||
isa_ok($ps, 'B::GV');
|
||||
|
29
lang/perl5.12/files/patch-bug54758
Normal file
29
lang/perl5.12/files/patch-bug54758
Normal file
@ -0,0 +1,29 @@
|
||||
# http://rt.perl.org/rt3/Public/Bug/Display.html?id=54758
|
||||
# http://perl5.git.perl.org/perl.git/commitdiff/62b40d2474e7487e6909e1872b6bccdf812c6818?hp=d49025b75d9b5002071bd1a4210654dab5663ef0#patch1
|
||||
diff --git a/pp_sort.c b/pp_sort.c
|
||||
index 9fe0dad..edfdadf 100644
|
||||
--- pp_sort.c
|
||||
+++ pp_sort.c
|
||||
@@ -1557,11 +1557,12 @@ PP(pp_sort)
|
||||
max = AvFILL(av) + 1;
|
||||
if (SvMAGICAL(av)) {
|
||||
MEXTEND(SP, max);
|
||||
- p2 = SP;
|
||||
for (i=0; i < max; i++) {
|
||||
SV **svp = av_fetch(av, i, FALSE);
|
||||
*SP++ = (svp) ? *svp : NULL;
|
||||
}
|
||||
+ SP--;
|
||||
+ p1 = p2 = SP - (max-1);
|
||||
}
|
||||
else {
|
||||
if (SvREADONLY(av))
|
||||
@@ -1717,7 +1718,7 @@ PP(pp_sort)
|
||||
SvREADONLY_off(av);
|
||||
else if (av && !sorting_av) {
|
||||
/* simulate pp_aassign of tied AV */
|
||||
- SV** const base = ORIGMARK+1;
|
||||
+ SV** const base = MARK+1;
|
||||
for (i=0; i < max; i++) {
|
||||
base[i] = newSVsv(base[i]);
|
||||
}
|
15
lang/perl5.12/files/patch-bug54934
Normal file
15
lang/perl5.12/files/patch-bug54934
Normal file
@ -0,0 +1,15 @@
|
||||
# http://rt.perl.org/rt3/Public/Bug/Display.html?id=49003
|
||||
# http://perl5.git.perl.org/perl.git/commitdiff/5a33563ff27918110ac4f876f12dae861e2d2fa2?hp=24ead1638d1eb17b67e49c614831261308ed561f
|
||||
diff --git a/ext/PerlIO/via/via.xs b/ext/PerlIO/via/via.xs
|
||||
index 3bc3cbb..5e6ddd3 100644
|
||||
--- ext/PerlIO/via/via.xs
|
||||
+++ ext/PerlIO/via/via.xs
|
||||
@@ -89,7 +89,7 @@ PerlIOVia_method(pTHX_ PerlIO * f, const char *method, CV ** save, int flags,
|
||||
if (!s->fh) {
|
||||
GV *gv = newGVgen(HvNAME_get(s->stash));
|
||||
GvIOp(gv) = newIO();
|
||||
- s->fh = newRV_noinc((SV *) gv);
|
||||
+ s->fh = newRV((SV *) gv);
|
||||
s->io = GvIOp(gv);
|
||||
}
|
||||
IoIFP(s->io) = PerlIONext(f);
|
31
lang/perl5.12/files/patch-bug56908
Normal file
31
lang/perl5.12/files/patch-bug56908
Normal file
@ -0,0 +1,31 @@
|
||||
# http://rt.perl.org/rt3/Public/Bug/Display.html?id=56908
|
||||
# http://perl5.git.perl.org/perl.git/commitdiff/b17f5ab768c4daa8faac6c85c0c20d3895f406e1?hp=7ee5fac837a8a4ebf1956da1b1d252aa82fe506d
|
||||
diff --git a/hv.c b/hv.c
|
||||
index 3d4d3af..24d9150 100644
|
||||
--- hv.c
|
||||
+++ hv.c
|
||||
@@ -1985,6 +1985,7 @@ Perl_hv_kill_backrefs(pTHX_ HV *hv) {
|
||||
if (av) {
|
||||
HvAUX(hv)->xhv_backreferences = 0;
|
||||
Perl_sv_kill_backrefs(aTHX_ (SV*) hv, av);
|
||||
+ SvREFCNT_dec(av);
|
||||
}
|
||||
}
|
||||
|
||||
diff --git a/sv.c b/sv.c
|
||||
index 04d6e43..4792ad1 100644
|
||||
--- sv.c
|
||||
+++ sv.c
|
||||
@@ -10784,10 +10784,11 @@ Perl_sv_dup(pTHX_ const SV *const sstr, CLONE_PARAMS *const param)
|
||||
daux->xhv_eiter = saux->xhv_eiter
|
||||
? he_dup(saux->xhv_eiter,
|
||||
(bool)!!HvSHAREKEYS(sstr), param) : 0;
|
||||
+ /* backref array needs refcnt=2; see sv_add_backref */
|
||||
daux->xhv_backreferences =
|
||||
saux->xhv_backreferences
|
||||
? (AV*) SvREFCNT_inc(
|
||||
- sv_dup((SV*)saux->xhv_backreferences, param))
|
||||
+ sv_dup_inc((SV*)saux->xhv_backreferences, param))
|
||||
: 0;
|
||||
|
||||
daux->xhv_mro_meta = saux->xhv_mro_meta
|
16
lang/perl5.12/files/patch-bug59516
Normal file
16
lang/perl5.12/files/patch-bug59516
Normal file
@ -0,0 +1,16 @@
|
||||
# http://rt.perl.org/rt3/Public/Bug/Display.html?id=59516
|
||||
# http://perl5.git.perl.org/perl.git/commitdiff/b023a8eeff463528d4a2b46396f79056c0ef9677?hp=a954f6ee3112c0edfbc59783d1b424d995122784
|
||||
diff --git a/regcomp.c b/regcomp.c
|
||||
index 54347cc..68cc58c 100644
|
||||
--- regcomp.c
|
||||
+++ regcomp.c
|
||||
@@ -8350,6 +8350,9 @@ parseit:
|
||||
*STRING(ret)= (char)value;
|
||||
STR_LEN(ret)= 1;
|
||||
RExC_emit += STR_SZ(1);
|
||||
+ if (listsv) {
|
||||
+ SvREFCNT_dec(listsv);
|
||||
+ }
|
||||
return ret;
|
||||
}
|
||||
/* optimize case-insensitive simple patterns (e.g. /[a-z]/i) */
|
16
lang/perl5.12/files/patch-qr-leak
Normal file
16
lang/perl5.12/files/patch-qr-leak
Normal file
@ -0,0 +1,16 @@
|
||||
# http://perl5.git.perl.org/perl.git/commitdiff/a954f6ee3112c0edfbc59783d1b424d995122784?hp=711690a16d2a16be7070e06779c46a6d8f482689
|
||||
diff --git a/pp_hot.c b/pp_hot.c
|
||||
index 57fa328..4a4e9e8 100644
|
||||
--- pp_hot.c
|
||||
+++ pp_hot.c
|
||||
@@ -1198,6 +1198,9 @@ PP(pp_qr)
|
||||
if (rx->extflags & RXf_TAINTED)
|
||||
SvTAINTED_on(rv);
|
||||
sv_magic(sv,(SV*)ReREFCNT_inc(rx), PERL_MAGIC_qr,0,0);
|
||||
+ if (pkg) {
|
||||
+ SvREFCNT_dec(pkg);
|
||||
+ }
|
||||
XPUSHs(rv);
|
||||
RETURN;
|
||||
}
|
||||
|
@ -7,6 +7,7 @@
|
||||
|
||||
PORTNAME= perl
|
||||
PORTVERSION= ${PERL_VERSION}
|
||||
PORTREVISION= 1
|
||||
CATEGORIES= lang devel perl5
|
||||
MASTER_SITES= CPAN \
|
||||
${MASTER_SITE_LOCAL:S/$/:local/} \
|
||||
|
14
lang/perl5.14/files/patch-IO-Socket-INET-udp
Normal file
14
lang/perl5.14/files/patch-IO-Socket-INET-udp
Normal file
@ -0,0 +1,14 @@
|
||||
# http://perl5.git.perl.org/perl.git/commitdiff/7027b9a31bf80c5639c73f75155ed1a89c674c30?hp=f175cff5cac5f8199b897ce2f1c73312d99d5761
|
||||
diff --git a/ext/IO/lib/IO/Socket/INET.pm b/ext/IO/lib/IO/Socket/INET.pm
|
||||
index f8bb338..2f0e5d1 100644
|
||||
--- ext/IO/lib/IO/Socket/INET.pm
|
||||
+++ ext/IO/lib/IO/Socket/INET.pm
|
||||
@@ -27,7 +27,7 @@ my %socket_type = ( tcp => SOCK_STREAM,
|
||||
);
|
||||
my %proto_number;
|
||||
$proto_number{tcp} = Socket::IPPROTO_TCP() if defined &Socket::IPPROTO_TCP;
|
||||
-$proto_number{upd} = Socket::IPPROTO_UDP() if defined &Socket::IPPROTO_UDP;
|
||||
+$proto_number{udp} = Socket::IPPROTO_UDP() if defined &Socket::IPPROTO_UDP;
|
||||
$proto_number{icmp} = Socket::IPPROTO_ICMP() if defined &Socket::IPPROTO_ICMP;
|
||||
my %proto_name = reverse %proto_number;
|
||||
|
18
lang/perl5.14/files/patch-bug49003
Normal file
18
lang/perl5.14/files/patch-bug49003
Normal file
@ -0,0 +1,18 @@
|
||||
# http://rt.perl.org/rt3/Public/Bug/Display.html?id=49003
|
||||
# http://perl5.git.perl.org/perl.git/commitdiff/b376053de54af4268a31e5a60d1f9e57db30af11?hp=3a28f3fb1bfd44e4e3dfe6842af867c8c1c9de28
|
||||
diff --git a/pp_sys.c b/pp_sys.c
|
||||
index 66ca0fb..da07e46 100644
|
||||
--- pp_sys.c
|
||||
+++ pp_sys.c
|
||||
@@ -2999,10 +2999,9 @@ PP(pp_ftrread)
|
||||
effective = TRUE;
|
||||
break;
|
||||
|
||||
-
|
||||
case OP_FTEEXEC:
|
||||
#ifdef PERL_EFF_ACCESS
|
||||
- access_mode = W_OK;
|
||||
+ access_mode = X_OK;
|
||||
#else
|
||||
use_access = 0;
|
||||
#endif
|
44
lang/perl5.14/files/patch-bug52074-54566
Normal file
44
lang/perl5.14/files/patch-bug52074-54566
Normal file
@ -0,0 +1,44 @@
|
||||
# http://rt.perl.org/rt3/Public/Bug/Display.html?id=52074
|
||||
# http://rt.perl.org/rt3/Public/Bug/Display.html?id=54566
|
||||
# http://perl5.git.perl.org/perl.git/commitdiff/5562fa714b8071354c365365c26a950efa73179a?hp=b3562f19ee0d76b60d176a0b1cfdac4f5f36785c
|
||||
# http://perl5.git.perl.org/perl.git/commitdiff/ea86b3de3510ce31d0c08dd6a21701d74b25369d?hp=72bfe1b2b35945ea3c95d9b94ae2908121292236
|
||||
diff --git a/mg.c b/mg.c
|
||||
index c4d7aeb..91a36f2 100644
|
||||
--- mg.c
|
||||
+++ mg.c
|
||||
@@ -1543,10 +1543,11 @@ Perl_magic_setisa(pTHX_ SV *sv, MAGIC *mg)
|
||||
stash = GvSTASH(
|
||||
SvTYPE(mg->mg_obj) == SVt_PVGV
|
||||
? (GV*)mg->mg_obj
|
||||
- : (GV*)SvMAGIC(mg->mg_obj)->mg_obj
|
||||
+ : (GV*)mg_find(mg->mg_obj, PERL_MAGIC_isa)->mg_obj
|
||||
);
|
||||
|
||||
- mro_isa_changed_in(stash);
|
||||
+ if (stash)
|
||||
+ mro_isa_changed_in(stash);
|
||||
|
||||
return 0;
|
||||
}
|
||||
diff --git a/t/mro/pkg_gen.t b/t/mro/pkg_gen.t
|
||||
index 6a507ac..e1f5eb0 100644
|
||||
--- t/mro/pkg_gen.t
|
||||
+++ t/mro/pkg_gen.t
|
||||
@@ -4,7 +4,7 @@ use strict;
|
||||
use warnings;
|
||||
|
||||
chdir 't' if -d 't';
|
||||
-require q(./test.pl); plan(tests => 6);
|
||||
+require q(./test.pl); plan(tests => 7);
|
||||
|
||||
{
|
||||
package Foo;
|
||||
@@ -34,3 +34,7 @@ is(mro::get_pkg_gen('Foo'), 1, "pkg_gen 1 for undef %Pkg::");
|
||||
|
||||
delete $::{"Foo::"};
|
||||
is(mro::get_pkg_gen('Foo'), 0, 'pkg_gen 0 for delete $::{Pkg::}');
|
||||
+
|
||||
+delete $::{"Quux::"};
|
||||
+push @Quux::ISA, "Woot"; # should not segfault
|
||||
+ok(1, "No segfault on modification of ISA in a deleted stash");
|
||||
|
15
lang/perl5.14/files/patch-bug52658
Normal file
15
lang/perl5.14/files/patch-bug52658
Normal file
@ -0,0 +1,15 @@
|
||||
# http://rt.perl.org/rt3/Public/Bug/Display.html?id=52658
|
||||
# http://perl5.git.perl.org/perl.git/commitdiff/62b40d2474e7487e6909e1872b6bccdf812c6818?hp=d49025b75d9b5002071bd1a4210654dab5663ef0#patch1
|
||||
diff --git a/pp_ctl.c b/pp_ctl.c
|
||||
index 7a377f0..88269a7 100644
|
||||
--- pp_ctl.c
|
||||
+++ pp_ctl.c
|
||||
@@ -218,7 +218,6 @@ PP(pp_substcont)
|
||||
if (!(cx->sb_rxtainted & 2) && SvTAINTED(TOPs))
|
||||
cx->sb_rxtainted |= 2;
|
||||
sv_catsv(dstr, POPs);
|
||||
- FREETMPS; /* Prevent excess tmp stack */
|
||||
|
||||
/* Are we done */
|
||||
if (cx->sb_once || !CALLREGEXEC(rx, s, cx->sb_strend, orig,
|
||||
|
15
lang/perl5.14/files/patch-bug52740
Normal file
15
lang/perl5.14/files/patch-bug52740
Normal file
@ -0,0 +1,15 @@
|
||||
# http://rt.perl.org/rt3/Public/Bug/Display.html?id=52740
|
||||
# http://perl5.git.perl.org/perl.git/commitdiff/785bee4f7cf89837cba8e6e0859abbb4b407e1f1?hp=90e91dd8c9549b16c38f6ab2e9fa25c7ea28dff8
|
||||
diff --git a/sv.c b/sv.c
|
||||
index f721e6f..5fcf018 100644
|
||||
--- sv.c
|
||||
+++ sv.c
|
||||
@@ -3717,7 +3717,7 @@ Perl_sv_setsv_flags(pTHX_ SV *dstr, register SV* sstr, const I32 flags)
|
||||
Perl_croak(aTHX_ "Cannot copy to %s", type);
|
||||
} else if (sflags & SVf_ROK) {
|
||||
if (isGV_with_GP(dstr) && dtype == SVt_PVGV
|
||||
- && SvTYPE(SvRV(sstr)) == SVt_PVGV) {
|
||||
+ && SvTYPE(SvRV(sstr)) == SVt_PVGV && isGV_with_GP(SvRV(sstr))) {
|
||||
sstr = SvRV(sstr);
|
||||
if (sstr == dstr) {
|
||||
if (GvIMPORTED(dstr) != GVf_IMPORTED
|
77
lang/perl5.14/files/patch-bug54186
Normal file
77
lang/perl5.14/files/patch-bug54186
Normal file
@ -0,0 +1,77 @@
|
||||
# http://rt.perl.org/rt3/Public/Bug/Display.html?id=54186
|
||||
# http://perl5.git.perl.org/perl.git/commitdiff/a5d752217825fadff051e943940b4abad8e8b552?hp=8d2082b01041d30d9a510164df9c5e4703949441
|
||||
diff --git a/ext/POSIX/Makefile.PL b/ext/POSIX/Makefile.PL
|
||||
index bd93e59..5f6679d 100644
|
||||
--- ext/POSIX/Makefile.PL
|
||||
+++ ext/POSIX/Makefile.PL
|
||||
@@ -48,13 +48,11 @@ my @names =
|
||||
MAX_INPUT MB_LEN_MAX MSG_CTRUNC MSG_DONTROUTE MSG_EOR MSG_OOB MSG_PEEK
|
||||
MSG_TRUNC MSG_WAITALL NAME_MAX NCCS NGROUPS_MAX NOFLSH OPEN_MAX OPOST
|
||||
PARENB PARMRK PARODD PATH_MAX PIPE_BUF RAND_MAX R_OK SCHAR_MAX
|
||||
- SCHAR_MIN SEEK_CUR SEEK_END SEEK_SET SHRT_MAX SHRT_MIN SIGABRT SIGALRM
|
||||
+ SCHAR_MIN SHRT_MAX SHRT_MIN SIGABRT SIGALRM
|
||||
SIGCHLD SIGCONT SIGFPE SIGHUP SIGILL SIGINT SIGKILL SIGPIPE SIGQUIT
|
||||
SIGSEGV SIGSTOP SIGTERM SIGTSTP SIGTTIN SIGTTOU
|
||||
SIGUSR1 SIGUSR2 SIG_BLOCK SIG_SETMASK SIG_UNBLOCK SSIZE_MAX
|
||||
- STDERR_FILENO STDIN_FILENO STDOUT_FILENO STREAM_MAX
|
||||
- S_IRGRP S_IROTH S_IRUSR S_IRWXG S_IRWXO S_IRWXU S_ISGID S_ISUID
|
||||
- S_IWGRP S_IWOTH S_IWUSR S_IXGRP S_IXOTH S_IXUSR TCIFLUSH TCIOFF
|
||||
+ STDERR_FILENO STDIN_FILENO STDOUT_FILENO STREAM_MAX TCIFLUSH TCIOFF
|
||||
TCIOFLUSH TCION TCOFLUSH TCOOFF TCOON TCSADRAIN TCSAFLUSH TCSANOW
|
||||
TMP_MAX TOSTOP TZNAME_MAX VEOF VEOL VERASE VINTR VKILL VMIN VQUIT
|
||||
VSTART VSTOP VSUSP VTIME WNOHANG WUNTRACED W_OK X_OK
|
||||
diff --git a/ext/POSIX/POSIX.pm b/ext/POSIX/POSIX.pm
|
||||
index fbbd253..97d0b2c 100644
|
||||
--- ext/POSIX/POSIX.pm
|
||||
+++ ext/POSIX/POSIX.pm
|
||||
@@ -13,7 +13,9 @@ use XSLoader ();
|
||||
use Fcntl qw(FD_CLOEXEC F_DUPFD F_GETFD F_GETFL F_GETLK F_RDLCK F_SETFD
|
||||
F_SETFL F_SETLK F_SETLKW F_UNLCK F_WRLCK O_ACCMODE O_APPEND
|
||||
O_CREAT O_EXCL O_NOCTTY O_NONBLOCK O_RDONLY O_RDWR O_TRUNC
|
||||
- O_WRONLY);
|
||||
+ O_WRONLY SEEK_CUR SEEK_END SEEK_SET
|
||||
+ S_IRGRP S_IROTH S_IRUSR S_IRWXG S_IRWXO S_IRWXU S_ISGID S_ISUID
|
||||
+ S_IWGRP S_IWOTH S_IWUSR S_IXGRP S_IXOTH S_IXUSR);
|
||||
|
||||
# Grandfather old foo_h form to new :foo_h form
|
||||
my $loaded;
|
||||
diff --git a/t/lib/proxy_constant_subs.t b/t/lib/proxy_constant_subs.t
|
||||
index 4af73d3..45b0a54 100644
|
||||
--- t/lib/proxy_constant_subs.t
|
||||
+++ t/lib/proxy_constant_subs.t
|
||||
@@ -7,20 +7,20 @@ BEGIN {
|
||||
print "1..0 # Skip -- Perl configured without B module\n";
|
||||
exit 0;
|
||||
}
|
||||
- if ($Config::Config{'extensions'} !~ /\bPOSIX\b/) {
|
||||
- print "1..0 # Skip -- Perl configured without POSIX\n";
|
||||
+ if ($Config::Config{'extensions'} !~ /\bFcntl\b/) {
|
||||
+ print "1..0 # Skip -- Perl configured without Fcntl\n";
|
||||
exit 0;
|
||||
}
|
||||
- # errno is a real subroutine, and acts as control
|
||||
+ # S_IFMT is a real subroutine, and acts as control
|
||||
# SEEK_SET is a proxy constant subroutine.
|
||||
- @symbols = qw(errno SEEK_SET);
|
||||
+ @symbols = qw(S_IFMT SEEK_SET);
|
||||
}
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use Test::More tests => 4 * @symbols;
|
||||
use B qw(svref_2object GVf_IMPORTED_CV);
|
||||
-use POSIX @symbols;
|
||||
+use Fcntl @symbols;
|
||||
|
||||
# GVf_IMPORTED_CV should not be set on the original, but should be set on the
|
||||
# imported GV.
|
||||
@@ -29,7 +29,7 @@ foreach my $symbol (@symbols) {
|
||||
my ($ps, $ms);
|
||||
{
|
||||
no strict 'refs';
|
||||
- $ps = svref_2object(\*{"POSIX::$symbol"});
|
||||
+ $ps = svref_2object(\*{"Fcntl::$symbol"});
|
||||
$ms = svref_2object(\*{"::$symbol"});
|
||||
}
|
||||
isa_ok($ps, 'B::GV');
|
||||
|
29
lang/perl5.14/files/patch-bug54758
Normal file
29
lang/perl5.14/files/patch-bug54758
Normal file
@ -0,0 +1,29 @@
|
||||
# http://rt.perl.org/rt3/Public/Bug/Display.html?id=54758
|
||||
# http://perl5.git.perl.org/perl.git/commitdiff/62b40d2474e7487e6909e1872b6bccdf812c6818?hp=d49025b75d9b5002071bd1a4210654dab5663ef0#patch1
|
||||
diff --git a/pp_sort.c b/pp_sort.c
|
||||
index 9fe0dad..edfdadf 100644
|
||||
--- pp_sort.c
|
||||
+++ pp_sort.c
|
||||
@@ -1557,11 +1557,12 @@ PP(pp_sort)
|
||||
max = AvFILL(av) + 1;
|
||||
if (SvMAGICAL(av)) {
|
||||
MEXTEND(SP, max);
|
||||
- p2 = SP;
|
||||
for (i=0; i < max; i++) {
|
||||
SV **svp = av_fetch(av, i, FALSE);
|
||||
*SP++ = (svp) ? *svp : NULL;
|
||||
}
|
||||
+ SP--;
|
||||
+ p1 = p2 = SP - (max-1);
|
||||
}
|
||||
else {
|
||||
if (SvREADONLY(av))
|
||||
@@ -1717,7 +1718,7 @@ PP(pp_sort)
|
||||
SvREADONLY_off(av);
|
||||
else if (av && !sorting_av) {
|
||||
/* simulate pp_aassign of tied AV */
|
||||
- SV** const base = ORIGMARK+1;
|
||||
+ SV** const base = MARK+1;
|
||||
for (i=0; i < max; i++) {
|
||||
base[i] = newSVsv(base[i]);
|
||||
}
|
15
lang/perl5.14/files/patch-bug54934
Normal file
15
lang/perl5.14/files/patch-bug54934
Normal file
@ -0,0 +1,15 @@
|
||||
# http://rt.perl.org/rt3/Public/Bug/Display.html?id=49003
|
||||
# http://perl5.git.perl.org/perl.git/commitdiff/5a33563ff27918110ac4f876f12dae861e2d2fa2?hp=24ead1638d1eb17b67e49c614831261308ed561f
|
||||
diff --git a/ext/PerlIO/via/via.xs b/ext/PerlIO/via/via.xs
|
||||
index 3bc3cbb..5e6ddd3 100644
|
||||
--- ext/PerlIO/via/via.xs
|
||||
+++ ext/PerlIO/via/via.xs
|
||||
@@ -89,7 +89,7 @@ PerlIOVia_method(pTHX_ PerlIO * f, const char *method, CV ** save, int flags,
|
||||
if (!s->fh) {
|
||||
GV *gv = newGVgen(HvNAME_get(s->stash));
|
||||
GvIOp(gv) = newIO();
|
||||
- s->fh = newRV_noinc((SV *) gv);
|
||||
+ s->fh = newRV((SV *) gv);
|
||||
s->io = GvIOp(gv);
|
||||
}
|
||||
IoIFP(s->io) = PerlIONext(f);
|
31
lang/perl5.14/files/patch-bug56908
Normal file
31
lang/perl5.14/files/patch-bug56908
Normal file
@ -0,0 +1,31 @@
|
||||
# http://rt.perl.org/rt3/Public/Bug/Display.html?id=56908
|
||||
# http://perl5.git.perl.org/perl.git/commitdiff/b17f5ab768c4daa8faac6c85c0c20d3895f406e1?hp=7ee5fac837a8a4ebf1956da1b1d252aa82fe506d
|
||||
diff --git a/hv.c b/hv.c
|
||||
index 3d4d3af..24d9150 100644
|
||||
--- hv.c
|
||||
+++ hv.c
|
||||
@@ -1985,6 +1985,7 @@ Perl_hv_kill_backrefs(pTHX_ HV *hv) {
|
||||
if (av) {
|
||||
HvAUX(hv)->xhv_backreferences = 0;
|
||||
Perl_sv_kill_backrefs(aTHX_ (SV*) hv, av);
|
||||
+ SvREFCNT_dec(av);
|
||||
}
|
||||
}
|
||||
|
||||
diff --git a/sv.c b/sv.c
|
||||
index 04d6e43..4792ad1 100644
|
||||
--- sv.c
|
||||
+++ sv.c
|
||||
@@ -10784,10 +10784,11 @@ Perl_sv_dup(pTHX_ const SV *const sstr, CLONE_PARAMS *const param)
|
||||
daux->xhv_eiter = saux->xhv_eiter
|
||||
? he_dup(saux->xhv_eiter,
|
||||
(bool)!!HvSHAREKEYS(sstr), param) : 0;
|
||||
+ /* backref array needs refcnt=2; see sv_add_backref */
|
||||
daux->xhv_backreferences =
|
||||
saux->xhv_backreferences
|
||||
? (AV*) SvREFCNT_inc(
|
||||
- sv_dup((SV*)saux->xhv_backreferences, param))
|
||||
+ sv_dup_inc((SV*)saux->xhv_backreferences, param))
|
||||
: 0;
|
||||
|
||||
daux->xhv_mro_meta = saux->xhv_mro_meta
|
16
lang/perl5.14/files/patch-bug59516
Normal file
16
lang/perl5.14/files/patch-bug59516
Normal file
@ -0,0 +1,16 @@
|
||||
# http://rt.perl.org/rt3/Public/Bug/Display.html?id=59516
|
||||
# http://perl5.git.perl.org/perl.git/commitdiff/b023a8eeff463528d4a2b46396f79056c0ef9677?hp=a954f6ee3112c0edfbc59783d1b424d995122784
|
||||
diff --git a/regcomp.c b/regcomp.c
|
||||
index 54347cc..68cc58c 100644
|
||||
--- regcomp.c
|
||||
+++ regcomp.c
|
||||
@@ -8350,6 +8350,9 @@ parseit:
|
||||
*STRING(ret)= (char)value;
|
||||
STR_LEN(ret)= 1;
|
||||
RExC_emit += STR_SZ(1);
|
||||
+ if (listsv) {
|
||||
+ SvREFCNT_dec(listsv);
|
||||
+ }
|
||||
return ret;
|
||||
}
|
||||
/* optimize case-insensitive simple patterns (e.g. /[a-z]/i) */
|
16
lang/perl5.14/files/patch-qr-leak
Normal file
16
lang/perl5.14/files/patch-qr-leak
Normal file
@ -0,0 +1,16 @@
|
||||
# http://perl5.git.perl.org/perl.git/commitdiff/a954f6ee3112c0edfbc59783d1b424d995122784?hp=711690a16d2a16be7070e06779c46a6d8f482689
|
||||
diff --git a/pp_hot.c b/pp_hot.c
|
||||
index 57fa328..4a4e9e8 100644
|
||||
--- pp_hot.c
|
||||
+++ pp_hot.c
|
||||
@@ -1198,6 +1198,9 @@ PP(pp_qr)
|
||||
if (rx->extflags & RXf_TAINTED)
|
||||
SvTAINTED_on(rv);
|
||||
sv_magic(sv,(SV*)ReREFCNT_inc(rx), PERL_MAGIC_qr,0,0);
|
||||
+ if (pkg) {
|
||||
+ SvREFCNT_dec(pkg);
|
||||
+ }
|
||||
XPUSHs(rv);
|
||||
RETURN;
|
||||
}
|
||||
|
@ -7,6 +7,7 @@
|
||||
|
||||
PORTNAME= perl
|
||||
PORTVERSION= ${PERL_VERSION}
|
||||
PORTREVISION= 1
|
||||
CATEGORIES= lang devel perl5
|
||||
MASTER_SITES= CPAN \
|
||||
${MASTER_SITE_LOCAL:S/$/:local/} \
|
||||
|
14
lang/perl5.16/files/patch-IO-Socket-INET-udp
Normal file
14
lang/perl5.16/files/patch-IO-Socket-INET-udp
Normal file
@ -0,0 +1,14 @@
|
||||
# http://perl5.git.perl.org/perl.git/commitdiff/7027b9a31bf80c5639c73f75155ed1a89c674c30?hp=f175cff5cac5f8199b897ce2f1c73312d99d5761
|
||||
diff --git a/ext/IO/lib/IO/Socket/INET.pm b/ext/IO/lib/IO/Socket/INET.pm
|
||||
index f8bb338..2f0e5d1 100644
|
||||
--- ext/IO/lib/IO/Socket/INET.pm
|
||||
+++ ext/IO/lib/IO/Socket/INET.pm
|
||||
@@ -27,7 +27,7 @@ my %socket_type = ( tcp => SOCK_STREAM,
|
||||
);
|
||||
my %proto_number;
|
||||
$proto_number{tcp} = Socket::IPPROTO_TCP() if defined &Socket::IPPROTO_TCP;
|
||||
-$proto_number{upd} = Socket::IPPROTO_UDP() if defined &Socket::IPPROTO_UDP;
|
||||
+$proto_number{udp} = Socket::IPPROTO_UDP() if defined &Socket::IPPROTO_UDP;
|
||||
$proto_number{icmp} = Socket::IPPROTO_ICMP() if defined &Socket::IPPROTO_ICMP;
|
||||
my %proto_name = reverse %proto_number;
|
||||
|
18
lang/perl5.16/files/patch-bug49003
Normal file
18
lang/perl5.16/files/patch-bug49003
Normal file
@ -0,0 +1,18 @@
|
||||
# http://rt.perl.org/rt3/Public/Bug/Display.html?id=49003
|
||||
# http://perl5.git.perl.org/perl.git/commitdiff/b376053de54af4268a31e5a60d1f9e57db30af11?hp=3a28f3fb1bfd44e4e3dfe6842af867c8c1c9de28
|
||||
diff --git a/pp_sys.c b/pp_sys.c
|
||||
index 66ca0fb..da07e46 100644
|
||||
--- pp_sys.c
|
||||
+++ pp_sys.c
|
||||
@@ -2999,10 +2999,9 @@ PP(pp_ftrread)
|
||||
effective = TRUE;
|
||||
break;
|
||||
|
||||
-
|
||||
case OP_FTEEXEC:
|
||||
#ifdef PERL_EFF_ACCESS
|
||||
- access_mode = W_OK;
|
||||
+ access_mode = X_OK;
|
||||
#else
|
||||
use_access = 0;
|
||||
#endif
|
44
lang/perl5.16/files/patch-bug52074-54566
Normal file
44
lang/perl5.16/files/patch-bug52074-54566
Normal file
@ -0,0 +1,44 @@
|
||||
# http://rt.perl.org/rt3/Public/Bug/Display.html?id=52074
|
||||
# http://rt.perl.org/rt3/Public/Bug/Display.html?id=54566
|
||||
# http://perl5.git.perl.org/perl.git/commitdiff/5562fa714b8071354c365365c26a950efa73179a?hp=b3562f19ee0d76b60d176a0b1cfdac4f5f36785c
|
||||
# http://perl5.git.perl.org/perl.git/commitdiff/ea86b3de3510ce31d0c08dd6a21701d74b25369d?hp=72bfe1b2b35945ea3c95d9b94ae2908121292236
|
||||
diff --git a/mg.c b/mg.c
|
||||
index c4d7aeb..91a36f2 100644
|
||||
--- mg.c
|
||||
+++ mg.c
|
||||
@@ -1543,10 +1543,11 @@ Perl_magic_setisa(pTHX_ SV *sv, MAGIC *mg)
|
||||
stash = GvSTASH(
|
||||
SvTYPE(mg->mg_obj) == SVt_PVGV
|
||||
? (GV*)mg->mg_obj
|
||||
- : (GV*)SvMAGIC(mg->mg_obj)->mg_obj
|
||||
+ : (GV*)mg_find(mg->mg_obj, PERL_MAGIC_isa)->mg_obj
|
||||
);
|
||||
|
||||
- mro_isa_changed_in(stash);
|
||||
+ if (stash)
|
||||
+ mro_isa_changed_in(stash);
|
||||
|
||||
return 0;
|
||||
}
|
||||
diff --git a/t/mro/pkg_gen.t b/t/mro/pkg_gen.t
|
||||
index 6a507ac..e1f5eb0 100644
|
||||
--- t/mro/pkg_gen.t
|
||||
+++ t/mro/pkg_gen.t
|
||||
@@ -4,7 +4,7 @@ use strict;
|
||||
use warnings;
|
||||
|
||||
chdir 't' if -d 't';
|
||||
-require q(./test.pl); plan(tests => 6);
|
||||
+require q(./test.pl); plan(tests => 7);
|
||||
|
||||
{
|
||||
package Foo;
|
||||
@@ -34,3 +34,7 @@ is(mro::get_pkg_gen('Foo'), 1, "pkg_gen 1 for undef %Pkg::");
|
||||
|
||||
delete $::{"Foo::"};
|
||||
is(mro::get_pkg_gen('Foo'), 0, 'pkg_gen 0 for delete $::{Pkg::}');
|
||||
+
|
||||
+delete $::{"Quux::"};
|
||||
+push @Quux::ISA, "Woot"; # should not segfault
|
||||
+ok(1, "No segfault on modification of ISA in a deleted stash");
|
||||
|
15
lang/perl5.16/files/patch-bug52658
Normal file
15
lang/perl5.16/files/patch-bug52658
Normal file
@ -0,0 +1,15 @@
|
||||
# http://rt.perl.org/rt3/Public/Bug/Display.html?id=52658
|
||||
# http://perl5.git.perl.org/perl.git/commitdiff/62b40d2474e7487e6909e1872b6bccdf812c6818?hp=d49025b75d9b5002071bd1a4210654dab5663ef0#patch1
|
||||
diff --git a/pp_ctl.c b/pp_ctl.c
|
||||
index 7a377f0..88269a7 100644
|
||||
--- pp_ctl.c
|
||||
+++ pp_ctl.c
|
||||
@@ -218,7 +218,6 @@ PP(pp_substcont)
|
||||
if (!(cx->sb_rxtainted & 2) && SvTAINTED(TOPs))
|
||||
cx->sb_rxtainted |= 2;
|
||||
sv_catsv(dstr, POPs);
|
||||
- FREETMPS; /* Prevent excess tmp stack */
|
||||
|
||||
/* Are we done */
|
||||
if (cx->sb_once || !CALLREGEXEC(rx, s, cx->sb_strend, orig,
|
||||
|
15
lang/perl5.16/files/patch-bug52740
Normal file
15
lang/perl5.16/files/patch-bug52740
Normal file
@ -0,0 +1,15 @@
|
||||
# http://rt.perl.org/rt3/Public/Bug/Display.html?id=52740
|
||||
# http://perl5.git.perl.org/perl.git/commitdiff/785bee4f7cf89837cba8e6e0859abbb4b407e1f1?hp=90e91dd8c9549b16c38f6ab2e9fa25c7ea28dff8
|
||||
diff --git a/sv.c b/sv.c
|
||||
index f721e6f..5fcf018 100644
|
||||
--- sv.c
|
||||
+++ sv.c
|
||||
@@ -3717,7 +3717,7 @@ Perl_sv_setsv_flags(pTHX_ SV *dstr, register SV* sstr, const I32 flags)
|
||||
Perl_croak(aTHX_ "Cannot copy to %s", type);
|
||||
} else if (sflags & SVf_ROK) {
|
||||
if (isGV_with_GP(dstr) && dtype == SVt_PVGV
|
||||
- && SvTYPE(SvRV(sstr)) == SVt_PVGV) {
|
||||
+ && SvTYPE(SvRV(sstr)) == SVt_PVGV && isGV_with_GP(SvRV(sstr))) {
|
||||
sstr = SvRV(sstr);
|
||||
if (sstr == dstr) {
|
||||
if (GvIMPORTED(dstr) != GVf_IMPORTED
|
77
lang/perl5.16/files/patch-bug54186
Normal file
77
lang/perl5.16/files/patch-bug54186
Normal file
@ -0,0 +1,77 @@
|
||||
# http://rt.perl.org/rt3/Public/Bug/Display.html?id=54186
|
||||
# http://perl5.git.perl.org/perl.git/commitdiff/a5d752217825fadff051e943940b4abad8e8b552?hp=8d2082b01041d30d9a510164df9c5e4703949441
|
||||
diff --git a/ext/POSIX/Makefile.PL b/ext/POSIX/Makefile.PL
|
||||
index bd93e59..5f6679d 100644
|
||||
--- ext/POSIX/Makefile.PL
|
||||
+++ ext/POSIX/Makefile.PL
|
||||
@@ -48,13 +48,11 @@ my @names =
|
||||
MAX_INPUT MB_LEN_MAX MSG_CTRUNC MSG_DONTROUTE MSG_EOR MSG_OOB MSG_PEEK
|
||||
MSG_TRUNC MSG_WAITALL NAME_MAX NCCS NGROUPS_MAX NOFLSH OPEN_MAX OPOST
|
||||
PARENB PARMRK PARODD PATH_MAX PIPE_BUF RAND_MAX R_OK SCHAR_MAX
|
||||
- SCHAR_MIN SEEK_CUR SEEK_END SEEK_SET SHRT_MAX SHRT_MIN SIGABRT SIGALRM
|
||||
+ SCHAR_MIN SHRT_MAX SHRT_MIN SIGABRT SIGALRM
|
||||
SIGCHLD SIGCONT SIGFPE SIGHUP SIGILL SIGINT SIGKILL SIGPIPE SIGQUIT
|
||||
SIGSEGV SIGSTOP SIGTERM SIGTSTP SIGTTIN SIGTTOU
|
||||
SIGUSR1 SIGUSR2 SIG_BLOCK SIG_SETMASK SIG_UNBLOCK SSIZE_MAX
|
||||
- STDERR_FILENO STDIN_FILENO STDOUT_FILENO STREAM_MAX
|
||||
- S_IRGRP S_IROTH S_IRUSR S_IRWXG S_IRWXO S_IRWXU S_ISGID S_ISUID
|
||||
- S_IWGRP S_IWOTH S_IWUSR S_IXGRP S_IXOTH S_IXUSR TCIFLUSH TCIOFF
|
||||
+ STDERR_FILENO STDIN_FILENO STDOUT_FILENO STREAM_MAX TCIFLUSH TCIOFF
|
||||
TCIOFLUSH TCION TCOFLUSH TCOOFF TCOON TCSADRAIN TCSAFLUSH TCSANOW
|
||||
TMP_MAX TOSTOP TZNAME_MAX VEOF VEOL VERASE VINTR VKILL VMIN VQUIT
|
||||
VSTART VSTOP VSUSP VTIME WNOHANG WUNTRACED W_OK X_OK
|
||||
diff --git a/ext/POSIX/POSIX.pm b/ext/POSIX/POSIX.pm
|
||||
index fbbd253..97d0b2c 100644
|
||||
--- ext/POSIX/POSIX.pm
|
||||
+++ ext/POSIX/POSIX.pm
|
||||
@@ -13,7 +13,9 @@ use XSLoader ();
|
||||
use Fcntl qw(FD_CLOEXEC F_DUPFD F_GETFD F_GETFL F_GETLK F_RDLCK F_SETFD
|
||||
F_SETFL F_SETLK F_SETLKW F_UNLCK F_WRLCK O_ACCMODE O_APPEND
|
||||
O_CREAT O_EXCL O_NOCTTY O_NONBLOCK O_RDONLY O_RDWR O_TRUNC
|
||||
- O_WRONLY);
|
||||
+ O_WRONLY SEEK_CUR SEEK_END SEEK_SET
|
||||
+ S_IRGRP S_IROTH S_IRUSR S_IRWXG S_IRWXO S_IRWXU S_ISGID S_ISUID
|
||||
+ S_IWGRP S_IWOTH S_IWUSR S_IXGRP S_IXOTH S_IXUSR);
|
||||
|
||||
# Grandfather old foo_h form to new :foo_h form
|
||||
my $loaded;
|
||||
diff --git a/t/lib/proxy_constant_subs.t b/t/lib/proxy_constant_subs.t
|
||||
index 4af73d3..45b0a54 100644
|
||||
--- t/lib/proxy_constant_subs.t
|
||||
+++ t/lib/proxy_constant_subs.t
|
||||
@@ -7,20 +7,20 @@ BEGIN {
|
||||
print "1..0 # Skip -- Perl configured without B module\n";
|
||||
exit 0;
|
||||
}
|
||||
- if ($Config::Config{'extensions'} !~ /\bPOSIX\b/) {
|
||||
- print "1..0 # Skip -- Perl configured without POSIX\n";
|
||||
+ if ($Config::Config{'extensions'} !~ /\bFcntl\b/) {
|
||||
+ print "1..0 # Skip -- Perl configured without Fcntl\n";
|
||||
exit 0;
|
||||
}
|
||||
- # errno is a real subroutine, and acts as control
|
||||
+ # S_IFMT is a real subroutine, and acts as control
|
||||
# SEEK_SET is a proxy constant subroutine.
|
||||
- @symbols = qw(errno SEEK_SET);
|
||||
+ @symbols = qw(S_IFMT SEEK_SET);
|
||||
}
|
||||
|
||||
use strict;
|
||||
use warnings;
|
||||
use Test::More tests => 4 * @symbols;
|
||||
use B qw(svref_2object GVf_IMPORTED_CV);
|
||||
-use POSIX @symbols;
|
||||
+use Fcntl @symbols;
|
||||
|
||||
# GVf_IMPORTED_CV should not be set on the original, but should be set on the
|
||||
# imported GV.
|
||||
@@ -29,7 +29,7 @@ foreach my $symbol (@symbols) {
|
||||
my ($ps, $ms);
|
||||
{
|
||||
no strict 'refs';
|
||||
- $ps = svref_2object(\*{"POSIX::$symbol"});
|
||||
+ $ps = svref_2object(\*{"Fcntl::$symbol"});
|
||||
$ms = svref_2object(\*{"::$symbol"});
|
||||
}
|
||||
isa_ok($ps, 'B::GV');
|
||||
|
29
lang/perl5.16/files/patch-bug54758
Normal file
29
lang/perl5.16/files/patch-bug54758
Normal file
@ -0,0 +1,29 @@
|
||||
# http://rt.perl.org/rt3/Public/Bug/Display.html?id=54758
|
||||
# http://perl5.git.perl.org/perl.git/commitdiff/62b40d2474e7487e6909e1872b6bccdf812c6818?hp=d49025b75d9b5002071bd1a4210654dab5663ef0#patch1
|
||||
diff --git a/pp_sort.c b/pp_sort.c
|
||||
index 9fe0dad..edfdadf 100644
|
||||
--- pp_sort.c
|
||||
+++ pp_sort.c
|
||||
@@ -1557,11 +1557,12 @@ PP(pp_sort)
|
||||
max = AvFILL(av) + 1;
|
||||
if (SvMAGICAL(av)) {
|
||||
MEXTEND(SP, max);
|
||||
- p2 = SP;
|
||||
for (i=0; i < max; i++) {
|
||||
SV **svp = av_fetch(av, i, FALSE);
|
||||
*SP++ = (svp) ? *svp : NULL;
|
||||
}
|
||||
+ SP--;
|
||||
+ p1 = p2 = SP - (max-1);
|
||||
}
|
||||
else {
|
||||
if (SvREADONLY(av))
|
||||
@@ -1717,7 +1718,7 @@ PP(pp_sort)
|
||||
SvREADONLY_off(av);
|
||||
else if (av && !sorting_av) {
|
||||
/* simulate pp_aassign of tied AV */
|
||||
- SV** const base = ORIGMARK+1;
|
||||
+ SV** const base = MARK+1;
|
||||
for (i=0; i < max; i++) {
|
||||
base[i] = newSVsv(base[i]);
|
||||
}
|
15
lang/perl5.16/files/patch-bug54934
Normal file
15
lang/perl5.16/files/patch-bug54934
Normal file
@ -0,0 +1,15 @@
|
||||
# http://rt.perl.org/rt3/Public/Bug/Display.html?id=49003
|
||||
# http://perl5.git.perl.org/perl.git/commitdiff/5a33563ff27918110ac4f876f12dae861e2d2fa2?hp=24ead1638d1eb17b67e49c614831261308ed561f
|
||||
diff --git a/ext/PerlIO/via/via.xs b/ext/PerlIO/via/via.xs
|
||||
index 3bc3cbb..5e6ddd3 100644
|
||||
--- ext/PerlIO/via/via.xs
|
||||
+++ ext/PerlIO/via/via.xs
|
||||
@@ -89,7 +89,7 @@ PerlIOVia_method(pTHX_ PerlIO * f, const char *method, CV ** save, int flags,
|
||||
if (!s->fh) {
|
||||
GV *gv = newGVgen(HvNAME_get(s->stash));
|
||||
GvIOp(gv) = newIO();
|
||||
- s->fh = newRV_noinc((SV *) gv);
|
||||
+ s->fh = newRV((SV *) gv);
|
||||
s->io = GvIOp(gv);
|
||||
}
|
||||
IoIFP(s->io) = PerlIONext(f);
|
31
lang/perl5.16/files/patch-bug56908
Normal file
31
lang/perl5.16/files/patch-bug56908
Normal file
@ -0,0 +1,31 @@
|
||||
# http://rt.perl.org/rt3/Public/Bug/Display.html?id=56908
|
||||
# http://perl5.git.perl.org/perl.git/commitdiff/b17f5ab768c4daa8faac6c85c0c20d3895f406e1?hp=7ee5fac837a8a4ebf1956da1b1d252aa82fe506d
|
||||
diff --git a/hv.c b/hv.c
|
||||
index 3d4d3af..24d9150 100644
|
||||
--- hv.c
|
||||
+++ hv.c
|
||||
@@ -1985,6 +1985,7 @@ Perl_hv_kill_backrefs(pTHX_ HV *hv) {
|
||||
if (av) {
|
||||
HvAUX(hv)->xhv_backreferences = 0;
|
||||
Perl_sv_kill_backrefs(aTHX_ (SV*) hv, av);
|
||||
+ SvREFCNT_dec(av);
|
||||
}
|
||||
}
|
||||
|
||||
diff --git a/sv.c b/sv.c
|
||||
index 04d6e43..4792ad1 100644
|
||||
--- sv.c
|
||||
+++ sv.c
|
||||
@@ -10784,10 +10784,11 @@ Perl_sv_dup(pTHX_ const SV *const sstr, CLONE_PARAMS *const param)
|
||||
daux->xhv_eiter = saux->xhv_eiter
|
||||
? he_dup(saux->xhv_eiter,
|
||||
(bool)!!HvSHAREKEYS(sstr), param) : 0;
|
||||
+ /* backref array needs refcnt=2; see sv_add_backref */
|
||||
daux->xhv_backreferences =
|
||||
saux->xhv_backreferences
|
||||
? (AV*) SvREFCNT_inc(
|
||||
- sv_dup((SV*)saux->xhv_backreferences, param))
|
||||
+ sv_dup_inc((SV*)saux->xhv_backreferences, param))
|
||||
: 0;
|
||||
|
||||
daux->xhv_mro_meta = saux->xhv_mro_meta
|
16
lang/perl5.16/files/patch-bug59516
Normal file
16
lang/perl5.16/files/patch-bug59516
Normal file
@ -0,0 +1,16 @@
|
||||
# http://rt.perl.org/rt3/Public/Bug/Display.html?id=59516
|
||||
# http://perl5.git.perl.org/perl.git/commitdiff/b023a8eeff463528d4a2b46396f79056c0ef9677?hp=a954f6ee3112c0edfbc59783d1b424d995122784
|
||||
diff --git a/regcomp.c b/regcomp.c
|
||||
index 54347cc..68cc58c 100644
|
||||
--- regcomp.c
|
||||
+++ regcomp.c
|
||||
@@ -8350,6 +8350,9 @@ parseit:
|
||||
*STRING(ret)= (char)value;
|
||||
STR_LEN(ret)= 1;
|
||||
RExC_emit += STR_SZ(1);
|
||||
+ if (listsv) {
|
||||
+ SvREFCNT_dec(listsv);
|
||||
+ }
|
||||
return ret;
|
||||
}
|
||||
/* optimize case-insensitive simple patterns (e.g. /[a-z]/i) */
|
16
lang/perl5.16/files/patch-qr-leak
Normal file
16
lang/perl5.16/files/patch-qr-leak
Normal file
@ -0,0 +1,16 @@
|
||||
# http://perl5.git.perl.org/perl.git/commitdiff/a954f6ee3112c0edfbc59783d1b424d995122784?hp=711690a16d2a16be7070e06779c46a6d8f482689
|
||||
diff --git a/pp_hot.c b/pp_hot.c
|
||||
index 57fa328..4a4e9e8 100644
|
||||
--- pp_hot.c
|
||||
+++ pp_hot.c
|
||||
@@ -1198,6 +1198,9 @@ PP(pp_qr)
|
||||
if (rx->extflags & RXf_TAINTED)
|
||||
SvTAINTED_on(rv);
|
||||
sv_magic(sv,(SV*)ReREFCNT_inc(rx), PERL_MAGIC_qr,0,0);
|
||||
+ if (pkg) {
|
||||
+ SvREFCNT_dec(pkg);
|
||||
+ }
|
||||
XPUSHs(rv);
|
||||
RETURN;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user