This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
Chris 'BinGOs' Williams [Wed, 20 Feb 2013 23:11:43 +0000 (23:11 +0000)]
Update perlhist
Dave Rolsky [Tue, 18 Dec 2012 22:24:24 +0000 (16:24 -0600)]
Add release date for 5.17.7 to perlhist
David Mitchell [Tue, 5 Jul 2011 10:35:08 +0000 (11:35 +0100)]
fix segv in regcomp.c:S_join_exact()
[ cherry-picked from
bb789b09de07edfb74477eb1603949c96d60927d
to stop clang's address-sanitizer from complaining. See [perl #115994] ]
This function joins multiple EXACT* nodes into a single node.
At the end, under DEBUGGING, it marks the optimised-out nodes as being
type OPTIMIZED. However, some of the 'nodes' aren't actually nodes;
they're random bits of string at the tail of those nodes. So you
can't peek that the 'node's OP field to decide what type it was.
Instead, just unconditionally overwrite all the slots with fake
OPTIMIZED nodes.
David Mitchell [Fri, 7 Dec 2012 11:07:30 +0000 (11:07 +0000)]
[perl #115992] PL_eval_start use-after-free
PL_eval_start is used for two purposes.
First, it indicates the start op of a freshly-compiled eval. It is set in
newPROG(), and used by entereval etc to know where to begin executing.
After execution has begun, its value is meaningless (and may well point
to a freed op).
Second, it's used as a temporary pointer to indicate, within an assignment
to $] (which has been optimised into a const), that it's not to croak in
op_lvalue() with "Can't modify constant item", but instead to set
CopARYBASE.
This second use temporarily sets it in Perl_newASSIGNOP(), which calls
op_lvalue(), which uses and then clears it. The issue is that it can also
be left set by a previous eval, so something like 'local $[' will see it
set and try to use its value.
The quickest fix is to just set it NULL directly after each eval where its
used.
This change has been applied directly to maint-5.14 rather than going via
bleed, since the old $[ mechanism was ripped out for 5.15.3.
Ricardo Signes [Wed, 21 Nov 2012 00:49:37 +0000 (19:49 -0500)]
update perlhist for 5.17.6
Ricardo Signes [Thu, 1 Nov 2012 14:20:20 +0000 (10:20 -0400)]
add perl5.16.2 to perlhist
Florian Ragwitz [Fri, 19 Oct 2012 15:50:32 +0000 (12:50 -0300)]
Add 5.17.5 to perlhist
Dominic Hargreaves [Sun, 28 Oct 2012 18:11:41 +0000 (18:11 +0000)]
perldelta for smartmatch tainting fix
Father Chrysostomos [Tue, 20 Sep 2011 15:55:09 +0000 (08:55 -0700)]
$tainted ~~ [...] failing
When smartmatch is about to start, to avoid calling get-magic (e.g.,
FETCH methods) more than once, it copies any argument that has
get-magic.
Tainting uses get-magic to taint the expression. Calling mg_get(sv)
on a tainted scalar causes PL_tainted to be set, causing any scalars
modified by sv_setsv_flags to be tainted. That means that tainting
magic gets copied from one scalar to another.
So when smartmatch tries to copy the variable to avoid repeated calls
to magic, it still copies taint magic to the new variable.
For $scalar ~~ @array (or ~~ [...]), S_do_smartmatch calls itself
recursively for each element of @array, with $scalar (on the suppos-
edly non-magical copy of $scalar) on the left and the element on
the right.
In that recursive call, it again does the get-magic check and copies
the argument. Since the copied of a tainted variable on the LHS is
magical, it gets copied again. Since the first copy is a mortal
(marked TEMP) with a refcount of one, the second copy steal its
string buffer.
The outer call to S_do_smartmatch then proceeds with the second ele-
ment of @array, without realising that its copy of $scalar has lost
its string buffer and is now undefined.
So these produce incorrect results under -T (where $^X is ‘perl’):
$^X =~ ["whatever", undef] # matches
$^X =~ ["whatever", "perl"] # fails
This problem did not start occurring until this commit:
commit
8985fe98dcc5c0af2fadeac15dfbc13f553ee7fc
Author: David Mitchell <davem@iabyn.com>
Date: Thu Dec 30 10:32:44 2010 +0000
Better handling of magic methods freeing the SV
mg_get used to increase the refcount unconditionally, pushing it on to
the mortals stack. So the magical copy would have had a refcount of
2, preventing its string buffer from being stolen. Now it has a ref-
erence count of 1.
This commit solves it by adding a new parameter to S_do_smartmatch
telling it that the variable has already been copied and does not even
need to be checked. The $scalar~~@array case sets that parameter for
the recursive calls. That avoids the whole string-stealing problem
*and* avoids extra unnecessary SVs.
Origin: upstream, http://perl5.git.perl.org/perl.git/commit/
be88a5c3cc8efc0dbee86240eabf0050554fc717
Bug: http://rt.perl.org/rt3/Public/Bug/Display.html?id=93590
Bug-Debian: http://bugs.debian.org/690571
(Backported to 5.14 by Niko Tyni.)
Craig A. Berry [Thu, 25 Oct 2012 20:20:58 +0000 (15:20 -0500)]
perldelta entry for VMS fixes missed in 5.14.3.
c29067d7797853039 required two follow-up fixes (
bf6dd99808 and
0749edf595e84) to avoid compile failures on VMS, but we didn't
get them into 5.14.3.
Craig A. Berry [Sat, 3 Dec 2011 21:55:26 +0000 (15:55 -0600)]
Remove the VMS-specific private len in S_mayberelocate.
This particular C<STRLEN len;> came along almost 15 years ago, way
back in
aa6893958c2b. Back then it was a plain and simple block
scope variable. But now this code lives in a function that takes
as an argument a variable of the same name and having the same
meaning (i.e., the length of the directory name to be added to
@INC). Someone looking only at the argument list might reasonably
expect to be able to use len (though luckily there are no subsequent
uses of it currently). So we really ought to update that len rather
than create our own when we hijack the directory name to make our
unixified version of it.
Craig A. Berry [Sat, 3 Dec 2011 16:36:58 +0000 (10:36 -0600)]
VMS-specific scope fix for S_mayberelocate.
Back in
3185893b8dec106 I moved some code from the beginning of one
block to the middle of a different block. Bad me. The compiler
has been lax about allowing declarations in the middle of a block,
so we haven't noticed. But as of
c29067d7797853039, the code moved
to a new function while leaving the block it was in behind and we
end up with conflicting declarations of len.
Making our own block seems like the safest thing to do. The
indentation in this section of code is a bit wacky -- I chose the
least intrusive alternative for clearer blame logs.
Dominic Hargreaves [Fri, 12 Oct 2012 22:12:31 +0000 (23:12 +0100)]
Create perldelta for 5.14.4
Dominic Hargreaves [Thu, 11 Oct 2012 18:56:22 +0000 (19:56 +0100)]
Add 5.14.3 to perlhist
Dominic Hargreaves [Thu, 11 Oct 2012 19:25:52 +0000 (20:25 +0100)]
add Digest pointer to security section
Dominic Hargreaves [Thu, 11 Oct 2012 19:01:53 +0000 (20:01 +0100)]
perldelta for Module::CoreList
Dominic Hargreaves [Thu, 11 Oct 2012 18:31:03 +0000 (19:31 +0100)]
Bump Module::CoreList version again in order to fix %released
I added 5.14.3 to %released too soon, with a date that does not reflect
the final release date. This commit creates a new version of
Module::CoreList which fixes this.
Dominic Hargreaves [Wed, 10 Oct 2012 21:01:49 +0000 (22:01 +0100)]
disarm RC2 bump
Dominic Hargreaves [Wed, 10 Oct 2012 17:03:12 +0000 (18:03 +0100)]
bump version to RC2
Dominic Hargreaves [Wed, 10 Oct 2012 16:45:51 +0000 (17:45 +0100)]
refresh Acknowledgements
Dominic Hargreaves [Wed, 10 Oct 2012 16:19:18 +0000 (17:19 +0100)]
perldelta for heap buffer overrun fix
Andy Dougherty [Thu, 27 Sep 2012 13:52:18 +0000 (09:52 -0400)]
avoid calling memset with a negative count
Poorly written perl code that allows an attacker to specify the count to
perl's 'x' string repeat operator can already cause a memory exhaustion
denial-of-service attack. A flaw in versions of perl before 5.15.5 can
escalate that into a heap buffer overrun; coupled with versions of glibc
before 2.16, it possibly allows the execution of arbitrary code.
The flaw addressed to this commit has been assigned identifier
CVE-2012-5195.
Dominic Hargreaves [Thu, 27 Sep 2012 17:40:09 +0000 (18:40 +0100)]
perldelta for NetBSD 6.* change
Chris 'BinGOs' Williams [Mon, 2 Apr 2012 19:19:52 +0000 (20:19 +0100)]
Upstream pkgsrc patch to support NetBSD 6.*
From original patch:
"NetBSD-6.x is same condition as older releases."
Dominic Hargreaves [Wed, 26 Sep 2012 22:18:20 +0000 (23:18 +0100)]
disarm RC1 bump
Dominic Hargreaves [Sat, 22 Sep 2012 18:38:02 +0000 (19:38 +0100)]
bump version to RC1
Dominic Hargreaves [Sat, 22 Sep 2012 18:36:14 +0000 (19:36 +0100)]
Update Module::CoreList for 5.14.3
Dominic Hargreaves [Sat, 22 Sep 2012 17:31:53 +0000 (18:31 +0100)]
Finalise perldelta
Includes spelling, syntax and readability fixes
Florian Ragwitz [Wed, 19 Sep 2012 18:50:55 +0000 (14:50 -0400)]
Add 5.17.4 to perlhist
Ricardo Signes [Mon, 17 Sep 2012 15:08:07 +0000 (11:08 -0400)]
add 5.16.0 sizes and filecounts to perlhist
running and using the output of Porting/perlhist_calculate.pl
has not been done regularly, presumably because I had no idea
that it existed!
Ricardo Signes [Mon, 17 Sep 2012 15:08:07 +0000 (11:08 -0400)]
add 5.14.0 sizes and filecounts to perlhist
running and using the output of Porting/perlhist_calculate.pl
has not been done regularly, presumably because I had no idea
that it existed!
Dominic Hargreaves [Tue, 11 Sep 2012 16:07:36 +0000 (17:07 +0100)]
Bump copyright year, as it's now 2012
Dominic Hargreaves [Tue, 11 Sep 2012 15:29:49 +0000 (16:29 +0100)]
Bump the perl version in various places for 5.14.3
Dominic Hargreaves [Sat, 8 Sep 2012 17:09:33 +0000 (18:09 +0100)]
Bump versions of Digest and IPC::Open3
Dominic Hargreaves [Fri, 7 Sep 2012 22:02:54 +0000 (23:02 +0100)]
Update perldelta for all queued maint-5.14 changes
Salvador Fandino [Wed, 27 Jul 2011 16:20:29 +0000 (09:20 -0700)]
IPC::Open3::open3(..., '-') broken
IPC::Open3::open3($in, $out, $err, '-') is broken in 5.14.1
Because the old "return 0" used to return to user code now is wrapped inside and eval block.
This patch solves the problem.
Steve Hay [Mon, 20 Aug 2012 10:36:53 +0000 (11:36 +0100)]
Add 5.17.3 to perlhist
Karl Williamson [Thu, 27 Oct 2011 15:39:11 +0000 (09:39 -0600)]
PATCH: [perl #101970] /[[:lower:]]/i matches upper case
This bug is a regression in 5.14, in which /[[:lower:]]/i and
/[[:upper:]]/i no longer matched the opposite case.
The fix is to have these use a different table under /i matching, that
includes the correct /i code points. These tables were already
available, just unused.
Karl Williamson [Fri, 14 Oct 2011 01:56:45 +0000 (19:56 -0600)]
regexec.c: Fix "\x{FB01}\x{FB00}" =~ /ff/i
Only the first character of the string was being checked when scanning
for the beginning position of the pattern match.
This was so wrong, it looks like it has to be a regression. I
experimented a little and did not find any. I believe (but am not
certain) that a multi-char fold has to be involved. The the handling of
these was so broken before 5.14 that there very well may not be a
regression.
Karl Williamson [Tue, 1 Nov 2011 23:57:15 +0000 (17:57 -0600)]
PATCH: [perl #101710] Regression with /i, latin1 chars.
The root cause of this bug is that it was assuming that a string was in
utf8 when it wasn't, and so was thinking that a byte was a starter byte
that wasn't, so was skipping ahead based on that starter byte.
Michael G. Schwern [Mon, 3 Oct 2011 18:05:29 +0000 (19:05 +0100)]
Close the eval "require $module" security hole in Digest->new($algorithm)
Also the filter was incomplete.
Bug-Debian: http://bugs.debian.org/644108
Tony Cook [Sun, 11 Mar 2012 03:38:57 +0000 (14:38 +1100)]
properly propagate tainted errors
Backport
af89892ed and
05a1a0145d by Tony Cook to 5.14
Bug: https://rt.perl.org/rt3/Public/Bug/Display.html?id=111654
Bug-Debian: http://bugs.debian.org/cgi-bin/bugreport.cgi?bug=663158
David Mitchell [Tue, 28 Jun 2011 16:04:40 +0000 (17:04 +0100)]
RT 64804: tainting with index() of a constant
Bug: http://rt.perl.org/rt3/Public/Bug/Display.html?id=64804
Bug-Debian: http://bugs.debian.org/291450
Origin: upstream, http://perl5.git.perl.org/perl.git/commit/
3b36395d31cf0a2f3a017505cd0ea857a7acb5d1
At compile time, ck_index with a tainted constant set PL_tainted,
which remained on during the rest of compilation, tainting all other
constants.
Fix this by saving and restoring PL_tainted across the call to
fbm_compile, which is what sets PL_tainted.
Pino Toscano [Tue, 1 Nov 2011 18:37:19 +0000 (18:37 +0000)]
enable LFS on GNU/Hurd
at the moment, perl is compiled on GNU/Hurd without large file support.
This, other than the lacking of support for files > 2 GB, causes the
failure in the t/op/stat.t test.
The failure in stat.t happens because of the following: when filtering
devices in /dev/* using grep {} with -b/-c, stat fails for large
devices such as /dev/hdX blocks, or /dev/zero chars (this latter case
should be an Hurd-specific issue, but shouldn't matter for this case),
hence the counts done with grep {} and the ones done filtering the
output of `ls' don't match.
The attached patch enables the LFS using the same way used on linux.sh;
about t/op/lfs.t, it gets skipped at the "kernel/fs not configured to
use large files?" check, although it correctly detects sparse files and
(at least by looking at the disk usage) allocates the 5GB (or so) file
created with system() in that test.
Pino Toscano [Mon, 31 Oct 2011 21:37:04 +0000 (21:37 +0000)]
Fix hang in ext/POSIX/t/sysconf.t on GNU/Hurd
while compiling perl 5.14.2 on GNU/Hurd, I ran into what it seems a
undefined POSIX behaviour in ext/POSIX/t/sysconf.t.
my $fd = POSIX::open($fifo, O_RDWR)
or skip("could not open $fifo ($!)", 3 * @path_consts_fifo);
according to the POSIX open()[1] about O_RDWR,
The result is undefined if this flag is applied to a FIFO.
.... which is actually our case.
Apparently Linux and *FreeBSD (and maybe also OSes) accept this
behaviour, but on GNU/Hurd this causes the open() call to block
undefinitely. Given there's nothing done with the FIFO if not querying
{,f}pathconf() values, the proposed solution I attached is to change
the opening mode to "O_RDONLY | O_NONBLOCK".
[1] http://pubs.opengroup.org/onlinepubs/
9699919799/functions/open.html
Pino Toscano [Mon, 31 Oct 2011 19:21:27 +0000 (19:21 +0000)]
Add GNU/Hurd hints for NDBM_File
currently, there are few tests failing because of a broken NDBM module;
using the same hints as used on Linux (given that apparently the cause
is the same) makes the following tests pass:
t/op/dbm.t
cpan/autodie/t/dbmopen.t
cpan/Memoize/t/errors.t
cpan/Memoize/t/tie_ndbm.t
ext/NDBM_File/t/ndbm.t
lib/AnyDBM_File.t
Dominic Hargreaves adds: Note that the original git commit log [what
you see above] lists some tests which aren't affected in blead.
Pino Toscano [Wed, 10 Aug 2011 05:11:33 +0000 (08:11 +0300)]
Improve general GNU hints, needed for GNU/Hurd.
Bug-Debian: http://bugs.debian.org/636609
With minor modifications to add Pino to AUTHORS.
Niko Tyni [Thu, 19 May 2011 04:44:06 +0000 (21:44 -0700)]
[perl #90122] Make h2ph correctly search gcc include directories
System header conversion with "h2ph -a" is currently broken on Ubuntu
Natty and Oneiric (unless the gcc-multilib package is installed for
backward compatibility), resulting in things like
# perl -e 'require "syscall.ph"'
Can't locate asm/unistd.ph in @INC [...]
This happens because Ubuntu has switched to a 'multiarch' setup, see
<https://wiki.ubuntu.com/MultiarchSpec> for details.
The asm subdirectory isn't in $Config{usrinc} anymore: /usr/include/asm
is now /usr/include/x86_64-linux-gnu/asm. (The third component of the
new path varies with the actual architecture.)
gcc --print-search-dirs doesn't really tell anything about where gcc
looks for the include directories, it was just used to find the gcc
internal directory prefix.
Parse the output of "gcc -v -E" instead, and append $Config{usrinc}
for safety. Duplicates shouldn't matter.
The h2ph "-a" switch isn't currently tested automatically, and that
seems nontrivial to do portably. Manual testing was done with
# mkdir ttt
# ./perl -Ilib ./utils/h2ph -a -d $(pwd)/ttt syscall.h
The gcc invocation has been tested to work with gcc 4.6, 4.1, and 3.3.
http://bugs.debian.org/625808
https://bugs.launchpad.net/bugs/777903
Samuel Thibault [Wed, 4 Aug 2010 10:34:05 +0000 (13:34 +0300)]
Make hints/gnu.sh append to $ccflags rather than overriding them
Bug-Debian: http://bugs.debian.org/587901
Don't override possible extra $ccflags values given to Configure
on GNU/Hurd.
Ricardo Signes [Thu, 9 Aug 2012 13:42:53 +0000 (09:42 -0400)]
import perlhist data for 5.16.1
Ricardo Signes [Thu, 9 Aug 2012 19:57:04 +0000 (15:57 -0400)]
be_BY.CP1131 is still broken on Mountain Lion
Tony Cook [Sat, 21 Jul 2012 04:10:50 +0000 (14:10 +1000)]
backport perlhist.pod from 5.17.2
Ricardo Signes [Wed, 21 Mar 2012 01:44:29 +0000 (21:44 -0400)]
import AUTHORS data from blead
Father Chrysostomos [Mon, 6 Jun 2011 05:37:54 +0000 (22:37 -0700)]
[perl #92258] <$fh> hangs on a glob copy
Opening a file handle to \$glob causes assertion failures
(under debugging) or hangs or other erratic behaviour without
debugging. This might even crash in some cases.
It never really worked properly, but it didn’t start hanging
apparently until 5.12.2 and 5.14.0.
H.Merijn Brand [Tue, 14 Jun 2011 18:12:01 +0000 (20:12 +0200)]
Update PerlCheat to 5.14
Nicholas Clark [Wed, 15 Jun 2011 15:24:43 +0000 (16:24 +0100)]
Prefer the system gcc when searching for libraries such as -lm
40f026236b9959b7 added code to the Linux hints file to use gcc to locate
libraries such as -lm. However, if the user has their own gcc earlier in $PATH
than the system gcc, we don't want its libraries. So try to prefer the system
gcc.
Florian Ragwitz [Wed, 13 Jul 2011 17:05:01 +0000 (19:05 +0200)]
Don't include libutil.h on Linux
All it does is cause warnings on recent systems with that header installed. It's
required for some variants of FreeBSD only.
H.Merijn Brand [Mon, 8 Aug 2011 10:06:45 +0000 (12:06 +0200)]
GNU gcc-4.6.1 revealed a broken system header on HP-UX 11.00
Nicholas Clark [Tue, 27 Sep 2011 22:15:32 +0000 (00:15 +0200)]
Teach Configure about "procselfexe" on Solaris and NetBSD
Configure would already find /proc/self/exe on NetBSD, where /proc/self is
a symlink to /proc/curproc. However, the revised probe avoids the extra
symlink traversal. Configure did not previously probe for the
relevant path on Solaris, /proc/self/path/a.out
Rename the description of /proc/curproc/file from BSD to FreeBSD, as it seems
that of the "big 3" BSDs, only FreeBSD uses this path.
Based on a patch from Johann 'Myrkraverk' Oskarsson.
Nicholas Clark [Tue, 27 Sep 2011 21:47:39 +0000 (23:47 +0200)]
In Configure, refactor the test for procselfexe into a loop.
This removes code duplication, and makes it easy to add more variants.
Based on a patch from Johann 'Myrkraverk' Oskarsson.
Jilles Tjoelker [Sun, 30 Oct 2011 09:53:43 +0000 (10:53 +0100)]
Correct FreeBSD hints file for FreeBSD 10.0
Perl does not build on FreeBSD 10.0 because some checks in
hints/freebsd.sh think FreeBSD 10 is FreeBSD 1 and therefore enable
behaviour only appropriate for a.out systems.
The below patch was included in the lang/perl5.12 port and fixes its
build. The resulting binaries are also suitable to compile other ports.
I have also verified that this patch applies to lang/perl5.10 and
lang/perl5.14, making them build.
Nicholas Clark [Thu, 24 Nov 2011 17:11:32 +0000 (18:11 +0100)]
Avoid attacks on sitecustomize by using NUL delimiters to wrap filenames.
Previously the generated code used regular '' strings, which meant that a
crafted pathname containing ' characters could be used to inject code.
Until the previous commit, this was only a problem if building in or
Configuring to install to such a directory. Which, hopefully, would be
"obviously wrong" to anyone capable of building Perl from source.
However, fixing the bug that prevented sitecustomize being subject to
relocatable include now means that for a relocatable pearl, an end-user
controlled path can now reach the sitecusomize code.
Carl Hayter [Thu, 24 Nov 2011 16:49:50 +0000 (17:49 +0100)]
Make sitecustomize relocatableinc aware
When -Dusesitecustomize is used with -Duserelocatableinc,
SITELIB_EXP/sitecustomize.pl is not found due to SITELIB_EXP having a
'.../..' relocation path.
This patch refactors the path relocation code from S_incpush() into
S_mayberelocate() so that it can be used in both S_incpush() and in
usesitecustomize's use of SITELIB_EXP.
Leon Timmermans [Mon, 23 Jan 2012 01:01:00 +0000 (02:01 +0100)]
Enforce Any ~~ Object smartmatch precedence
Abigail [Tue, 20 Mar 2012 20:23:27 +0000 (21:23 +0100)]
Add new 5.15.9 entries to pod/perlhist.pod
Dave Rolsky [Wed, 21 Dec 2011 18:03:33 +0000 (12:03 -0600)]
Copy perlhist.pod from blead to maint-5.14
Florian Ragwitz [Mon, 26 Sep 2011 11:18:20 +0000 (13:18 +0200)]
Create perldelta for 5.14.3
Florian Ragwitz [Mon, 26 Sep 2011 10:04:56 +0000 (12:04 +0200)]
Add 5.14.2 to perlhist
Florian Ragwitz [Wed, 21 Sep 2011 11:21:17 +0000 (13:21 +0200)]
Delete some empty perldelta sections
Father Chrysostomos [Wed, 21 Sep 2011 05:22:58 +0000 (22:22 -0700)]
Fix pod syntax in perldelta
Karl Williamson [Sat, 16 Jul 2011 19:28:38 +0000 (13:28 -0600)]
perl5123delta: should have NAME perl5123delta
Florian Ragwitz [Mon, 19 Sep 2011 11:33:28 +0000 (13:33 +0200)]
Remove the RC1 marker
Florian Ragwitz [Mon, 19 Sep 2011 05:22:19 +0000 (07:22 +0200)]
Bump version to RC1
Florian Ragwitz [Mon, 19 Sep 2011 05:18:57 +0000 (07:18 +0200)]
Add 5.14.2-RC1 to perlhist
Florian Ragwitz [Mon, 19 Sep 2011 04:34:54 +0000 (06:34 +0200)]
Update Module::CoreList for 5.14.2
Florian Ragwitz [Mon, 19 Sep 2011 04:21:15 +0000 (06:21 +0200)]
Acknowledgements in perldelta
Karl Williamson [Sat, 30 Jul 2011 18:33:31 +0000 (12:33 -0600)]
/aa and \b fail under some utf8 strings
This was due to my failure to realize that this 'if' needed to
be updated when the /aa modifier was added.
Karl Williamson [Sat, 30 Jul 2011 18:08:47 +0000 (12:08 -0600)]
Panic with \b and /aa
This was due to my oversight in not fixing this switch statement
to accommodate /aa when it was added.
Florian Ragwitz [Thu, 8 Sep 2011 08:19:01 +0000 (10:19 +0200)]
Note that PERL_GLOBAL_STRUCT is broken
Nicholas Clark [Tue, 6 Sep 2011 13:06:06 +0000 (15:06 +0200)]
In Glob.xs, use memset() instead of bzero()
3c97495f56fb647c used bzero(), which isn't available on some platforms.
Florian Ragwitz [Wed, 7 Sep 2011 15:33:44 +0000 (17:33 +0200)]
Perldelta for the CPAN updates
Florian Ragwitz [Wed, 7 Sep 2011 15:33:09 +0000 (17:33 +0200)]
Bump CPAN{,::Distribution}::VERSION after MYMETA/configure_requires fixes
David Golden [Sat, 25 Jun 2011 01:13:40 +0000 (21:13 -0400)]
Changed read_meta to ignore dynamic_config
Because read_meta is also used to read META.* for configure_requires,
it must not return undef when dynamic_config is true. Instead,
the caller of read_meta must check dynamic_config when appropriate.
This is an API change, but as this is a new function, I think getting
correct semantics is more important than preserving back compatibility.
David Golden [Sat, 25 Jun 2011 00:52:33 +0000 (20:52 -0400)]
configure_requires should only check META
It should not check MYMETA if for some reason configure_requires
is checked again after MYMETA has been created.
This patch adds a regex filter to the check for the meta file.
Florian Ragwitz [Mon, 5 Sep 2011 11:43:50 +0000 (13:43 +0200)]
Perldelta for the CVE-2011-2939 fix
Florian Ragwitz [Mon, 5 Sep 2011 11:43:37 +0000 (13:43 +0200)]
Backport the CVE-2011-2939 fix for Encode
Florian Ragwitz [Mon, 5 Sep 2011 11:03:50 +0000 (13:03 +0200)]
Perldelta for the PerlIO::scalar COW fix
Father Chrysostomos [Sun, 5 Jun 2011 02:01:59 +0000 (19:01 -0700)]
Get PerlIO::scalar to write to COWs
Florian Ragwitz [Mon, 5 Sep 2011 11:02:37 +0000 (13:02 +0200)]
Fix a perldelta pod nit
Florian Ragwitz [Mon, 5 Sep 2011 10:38:27 +0000 (12:38 +0200)]
Perldelta for read-only glob copies
Father Chrysostomos [Tue, 12 Jul 2011 18:13:31 +0000 (11:13 -0700)]
Make it possible to have read-only glob copies
(aka Fun with Hash::Util)
This script gives ‘Modification of a read-only value’:
use Hash::Util lock_value;
*foo::; # autovivify
lock_value %::, foo::::;
*foo:: = [];
So far so good. That’s to be expected. But this one crashes:
use Hash::Util lock_value;
$a{h} = *foo;
lock_value %a, h;
$a{h} = [];
Under debugging builds, it gives assertion failures.
Anyone who knows how the flags work will see immediately what’s wrong,
but for the sake of those who don’t:
The SVf_FAKE flag is set on a copy of a typeglob, meaning that assign-
ing something other than a glob to it will overwrite the glob, instead
of writing to one of its slots.
The SVf_FAKE flag on a read-only (SVf_READONLY-flagged) string means
that it’s not actually read-only, but a copy-on-write string.
SVf_READONLY on a glob means that you can’t even assign *through* it.
See the first Hash::Util example above.
The crashing occurs when the two flags are combined.
sv_force_normal_flags assumes that anything marked fake AND read-only
is a copy-on-write string, so it proceeds to gut it, even if it’s
actually just corrupting a glob.
So this commit changes that check to take typeglobs into account.
Florian Ragwitz [Sun, 4 Sep 2011 23:50:58 +0000 (01:50 +0200)]
Fix a skip count in base's t/fields.t
Father Chrysostomos [Sat, 4 Jun 2011 18:58:14 +0000 (11:58 -0700)]
Allow restricted hashes containing COWs to be cleared
Florian Ragwitz [Sun, 4 Sep 2011 23:39:43 +0000 (01:39 +0200)]
Perldelta for deleting COWs in restricted hashes
Father Chrysostomos [Sat, 4 Jun 2011 18:54:10 +0000 (11:54 -0700)]
Allow COW values to be deleted from restricted hashes
I wonder how many other things a604c75 broke....
Florian Ragwitz [Sun, 4 Sep 2011 23:27:54 +0000 (01:27 +0200)]
Perldelta for the tied COW string localisation fix
Father Chrysostomos [Sat, 4 Jun 2011 20:10:41 +0000 (13:10 -0700)]
Stop localised ties from becoming ro when COW
Pau Amma [Sat, 4 Jun 2011 21:31:07 +0000 (14:31 -0700)]
move "garbage collection" glossary entry where it belongs
Father Chrysostomos [Sat, 4 Jun 2011 21:31:58 +0000 (14:31 -0700)]
Add Pau Amma to AUTHORS
Florian Ragwitz [Sun, 4 Sep 2011 23:16:37 +0000 (01:16 +0200)]
Perldelta entry for the utf8::decode COW fix