5 years agobump version to RC1 v5.14.3-RC1
Dominic Hargreaves [Sat, 22 Sep 2012 18:38:02 +0000 (19:38 +0100)] 
bump version to RC1

5 years agoUpdate Module::CoreList for 5.14.3
Dominic Hargreaves [Sat, 22 Sep 2012 18:36:14 +0000 (19:36 +0100)] 
Update Module::CoreList for 5.14.3

5 years agoFinalise perldelta
Dominic Hargreaves [Sat, 22 Sep 2012 17:31:53 +0000 (18:31 +0100)] 
Finalise perldelta

Includes spelling, syntax and readability fixes

5 years agoAdd 5.17.4 to perlhist
Florian Ragwitz [Wed, 19 Sep 2012 18:50:55 +0000 (14:50 -0400)] 
Add 5.17.4 to perlhist

5 years agoadd 5.16.0 sizes and filecounts 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/
has not been done regularly, presumably because I had no idea
that it existed!

5 years agoadd 5.14.0 sizes and filecounts to perlhist
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/
has not been done regularly, presumably because I had no idea
that it existed!

5 years agoBump copyright year, as it's now 2012
Dominic Hargreaves [Tue, 11 Sep 2012 16:07:36 +0000 (17:07 +0100)] 
Bump copyright year, as it's now 2012

5 years agoBump the perl version in various places for 5.14.3
Dominic Hargreaves [Tue, 11 Sep 2012 15:29:49 +0000 (16:29 +0100)] 
Bump the perl version in various places for 5.14.3

5 years agoBump versions of Digest and IPC::Open3
Dominic Hargreaves [Sat, 8 Sep 2012 17:09:33 +0000 (18:09 +0100)] 
Bump versions of Digest and IPC::Open3

5 years agoUpdate perldelta for all queued maint-5.14 changes
Dominic Hargreaves [Fri, 7 Sep 2012 22:02:54 +0000 (23:02 +0100)] 
Update perldelta for all queued maint-5.14 changes

5 years agoIPC::Open3::open3(..., '-') broken
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.

5 years agoAdd 5.17.3 to perlhist
Steve Hay [Mon, 20 Aug 2012 10:36:53 +0000 (11:36 +0100)] 
Add 5.17.3 to perlhist

5 years agoPATCH: [perl #101970] /[[:lower:]]/i matches upper case
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.

5 years agoregexec.c: Fix "\x{FB01}\x{FB00}" =~ /ff/i
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

5 years agoPATCH: [perl #101710] Regression with /i, latin1 chars.
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.

5 years agoClose the eval "require $module" security hole in Digest->new($algorithm)
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.


5 years agoproperly propagate tainted errors
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


5 years agoRT 64804: tainting with index() of a constant
David Mitchell [Tue, 28 Jun 2011 16:04:40 +0000 (17:04 +0100)] 
RT 64804: tainting with index() of a constant

Origin: upstream,

At compile time, ck_index with a tainted constant set PL_tainted,
which remained on during the rest of compilation, tainting all other

Fix this by saving and restoring PL_tainted across the call to
fbm_compile, which is what sets PL_tainted.

5 years agoenable LFS on GNU/Hurd
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;
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.

5 years agoFix hang in ext/POSIX/t/sysconf.t on GNU/Hurd
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".


5 years agoAdd GNU/Hurd hints for NDBM_File
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:

Dominic Hargreaves adds: Note that the original git commit log [what
you see above] lists some tests which aren't affected in blead.

5 years agoImprove general GNU hints, needed for GNU/Hurd.
Pino Toscano [Wed, 10 Aug 2011 05:11:33 +0000 (08:11 +0300)] 
Improve general GNU hints, needed for GNU/Hurd.


With minor modifications to add Pino to AUTHORS.

5 years ago[perl #90122] Make h2ph correctly search gcc include directories
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 ""'
 Can't locate asm/ in @INC [...]

This happens because Ubuntu has switched to a 'multiarch' setup, see
<> 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.

5 years agoMake hints/ append to $ccflags rather than overriding them
Samuel Thibault [Wed, 4 Aug 2010 10:34:05 +0000 (13:34 +0300)] 
Make hints/ append to $ccflags rather than overriding them


Don't override possible extra $ccflags values given to Configure
on GNU/Hurd.

5 years agoimport perlhist data for 5.16.1
Ricardo Signes [Thu, 9 Aug 2012 13:42:53 +0000 (09:42 -0400)] 
import perlhist data for 5.16.1

5 years agobe_BY.CP1131 is still broken on Mountain Lion
Ricardo Signes [Thu, 9 Aug 2012 19:57:04 +0000 (15:57 -0400)] 
be_BY.CP1131 is still broken on Mountain Lion

5 years agobackport perlhist.pod from 5.17.2
Tony Cook [Sat, 21 Jul 2012 04:10:50 +0000 (14:10 +1000)] 
backport perlhist.pod from 5.17.2

5 years agoimport AUTHORS data from blead
Ricardo Signes [Wed, 21 Mar 2012 01:44:29 +0000 (21:44 -0400)] 
import AUTHORS data from blead

5 years ago[perl #92258] <$fh> hangs on a glob copy
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.

5 years agoUpdate PerlCheat to 5.14
H.Merijn Brand [Tue, 14 Jun 2011 18:12:01 +0000 (20:12 +0200)] 
Update PerlCheat to 5.14

5 years agoPrefer the system gcc when searching for libraries such as -lm
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

5 years agoDon't include libutil.h on Linux
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.

5 years agoGNU gcc-4.6.1 revealed a broken system header on HP-UX 11.00
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

5 years agoTeach Configure about "procselfexe" on Solaris and NetBSD
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.

5 years agoIn Configure, refactor the test for procselfexe into a loop.
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.

5 years agoCorrect FreeBSD hints file for FreeBSD 10.0
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/ 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.

5 years agoAvoid attacks on sitecustomize by using NUL delimiters to wrap filenames.
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.

5 years agoMake sitecustomize relocatableinc aware
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/ 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.

5 years agoEnforce Any ~~ Object smartmatch precedence
Leon Timmermans [Mon, 23 Jan 2012 01:01:00 +0000 (02:01 +0100)] 
Enforce Any ~~ Object smartmatch precedence

5 years agoAdd new 5.15.9 entries to pod/perlhist.pod
Abigail [Tue, 20 Mar 2012 20:23:27 +0000 (21:23 +0100)] 
Add new 5.15.9 entries to pod/perlhist.pod

5 years agoCopy perlhist.pod from blead to maint-5.14
Dave Rolsky [Wed, 21 Dec 2011 18:03:33 +0000 (12:03 -0600)] 
Copy perlhist.pod from blead to maint-5.14

6 years agoCreate perldelta for 5.14.3
Florian Ragwitz [Mon, 26 Sep 2011 11:18:20 +0000 (13:18 +0200)] 
Create perldelta for 5.14.3

6 years agoAdd 5.14.2 to perlhist v5.14.2
Florian Ragwitz [Mon, 26 Sep 2011 10:04:56 +0000 (12:04 +0200)] 
Add 5.14.2 to perlhist

6 years agoDelete some empty perldelta sections
Florian Ragwitz [Wed, 21 Sep 2011 11:21:17 +0000 (13:21 +0200)] 
Delete some empty perldelta sections

6 years agoFix pod syntax in perldelta
Father Chrysostomos [Wed, 21 Sep 2011 05:22:58 +0000 (22:22 -0700)] 
Fix pod syntax in perldelta

6 years agoperl5123delta: should have NAME perl5123delta
Karl Williamson [Sat, 16 Jul 2011 19:28:38 +0000 (13:28 -0600)] 
perl5123delta: should have NAME perl5123delta

6 years agoRemove the RC1 marker
Florian Ragwitz [Mon, 19 Sep 2011 11:33:28 +0000 (13:33 +0200)] 
Remove the RC1 marker

6 years agoBump version to RC1 v5.14.2-RC1
Florian Ragwitz [Mon, 19 Sep 2011 05:22:19 +0000 (07:22 +0200)] 
Bump version to RC1

6 years agoAdd 5.14.2-RC1 to perlhist
Florian Ragwitz [Mon, 19 Sep 2011 05:18:57 +0000 (07:18 +0200)] 
Add 5.14.2-RC1 to perlhist

6 years agoUpdate Module::CoreList for 5.14.2
Florian Ragwitz [Mon, 19 Sep 2011 04:34:54 +0000 (06:34 +0200)] 
Update Module::CoreList for 5.14.2

6 years agoAcknowledgements in perldelta
Florian Ragwitz [Mon, 19 Sep 2011 04:21:15 +0000 (06:21 +0200)] 
Acknowledgements in perldelta

6 years ago/aa and \b fail under some utf8 strings
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.

6 years agoPanic with \b and /aa
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.

6 years agoNote that PERL_GLOBAL_STRUCT is broken
Florian Ragwitz [Thu, 8 Sep 2011 08:19:01 +0000 (10:19 +0200)] 
Note that PERL_GLOBAL_STRUCT is broken

6 years agoIn Glob.xs, use memset() instead of bzero()
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.

6 years agoPerldelta for the CPAN updates
Florian Ragwitz [Wed, 7 Sep 2011 15:33:44 +0000 (17:33 +0200)] 
Perldelta for the CPAN updates

6 years agoBump CPAN{,::Distribution}::VERSION after MYMETA/configure_requires fixes
Florian Ragwitz [Wed, 7 Sep 2011 15:33:09 +0000 (17:33 +0200)] 
Bump CPAN{,::Distribution}::VERSION after MYMETA/configure_requires fixes

6 years agoChanged read_meta to ignore dynamic_config
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.

6 years agoconfigure_requires should only check META
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.

6 years agoPerldelta for the CVE-2011-2939 fix
Florian Ragwitz [Mon, 5 Sep 2011 11:43:50 +0000 (13:43 +0200)] 
Perldelta for the CVE-2011-2939 fix

6 years agoBackport the CVE-2011-2939 fix for Encode
Florian Ragwitz [Mon, 5 Sep 2011 11:43:37 +0000 (13:43 +0200)] 
Backport the CVE-2011-2939 fix for Encode

6 years agoPerldelta for the PerlIO::scalar COW fix
Florian Ragwitz [Mon, 5 Sep 2011 11:03:50 +0000 (13:03 +0200)] 
Perldelta for the PerlIO::scalar COW fix

6 years agoGet PerlIO::scalar to write to COWs
Father Chrysostomos [Sun, 5 Jun 2011 02:01:59 +0000 (19:01 -0700)] 
Get PerlIO::scalar to write to COWs

6 years agoFix a perldelta pod nit
Florian Ragwitz [Mon, 5 Sep 2011 11:02:37 +0000 (13:02 +0200)] 
Fix a perldelta pod nit

6 years agoPerldelta for read-only glob copies
Florian Ragwitz [Mon, 5 Sep 2011 10:38:27 +0000 (12:38 +0200)] 
Perldelta for read-only glob copies

6 years agoMake it possible to have 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.

6 years agoFix a skip count in base's t/fields.t
Florian Ragwitz [Sun, 4 Sep 2011 23:50:58 +0000 (01:50 +0200)] 
Fix a skip count in base's t/fields.t

6 years agoAllow restricted hashes containing COWs to be cleared
Father Chrysostomos [Sat, 4 Jun 2011 18:58:14 +0000 (11:58 -0700)] 
Allow restricted hashes containing COWs to be cleared

6 years agoPerldelta for deleting COWs in restricted hashes
Florian Ragwitz [Sun, 4 Sep 2011 23:39:43 +0000 (01:39 +0200)] 
Perldelta for deleting COWs in restricted hashes

6 years agoAllow COW values to be deleted from 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....

6 years agoPerldelta for the tied COW string localisation fix
Florian Ragwitz [Sun, 4 Sep 2011 23:27:54 +0000 (01:27 +0200)] 
Perldelta for the tied COW string localisation fix

6 years agoStop localised ties from becoming ro when COW
Father Chrysostomos [Sat, 4 Jun 2011 20:10:41 +0000 (13:10 -0700)] 
Stop localised ties from becoming ro when COW

6 years agomove "garbage collection" glossary entry where it belongs
Pau Amma [Sat, 4 Jun 2011 21:31:07 +0000 (14:31 -0700)] 
move "garbage collection" glossary entry where it belongs

6 years agoAdd Pau Amma to AUTHORS
Father Chrysostomos [Sat, 4 Jun 2011 21:31:58 +0000 (14:31 -0700)] 
Add Pau Amma to AUTHORS

6 years agoPerldelta entry for the utf8::decode COW fix
Florian Ragwitz [Sun, 4 Sep 2011 23:16:37 +0000 (01:16 +0200)] 
Perldelta entry for the utf8::decode COW fix

6 years ago2nd try: [perl #91834] utf8::decode does not respect copy-on-write
Father Chrysostomos [Mon, 30 May 2011 03:39:33 +0000 (20:39 -0700)] 
2nd try: [perl #91834] utf8::decode does not respect copy-on-write

I reverted the first version of this patch because I put the if()
statement before a declaration. I did a revert, rather than a correc-
tion, to make back-porting easier.

6 years agoperldelta entry for File:Glob / CVE-2011-2728 fix.
Craig A. Berry [Sun, 4 Sep 2011 20:49:06 +0000 (15:49 -0500)] 
perldelta entry for File:Glob / CVE-2011-2728 fix.

6 years agoPlug segfault in bsd_glob() with unsupported ALTDIRFUNC flag.
Craig A. Berry [Fri, 19 Aug 2011 15:14:13 +0000 (10:14 -0500)] 
Plug segfault in bsd_glob() with unsupported ALTDIRFUNC flag.

First, disable all the unsupported flags just to make sure they aren't
triggering something they shouldn't be.  Also, zero the pglob struct
before passing to bsd_glob(); it contains function pointers, and it's
safest if they are null rather than containing random stack data.

Bug reported by Clément Lecigne <>.

6 years agoPerldelta for the Carp memory leak fix
Florian Ragwitz [Fri, 26 Aug 2011 13:30:17 +0000 (15:30 +0200)] 
Perldelta for the Carp memory leak fix

6 years ago[perl #97020] Carp (actually caller) leaking memory
Father Chrysostomos [Thu, 18 Aug 2011 15:50:02 +0000 (08:50 -0700)] 
[perl #97020] Carp (actually caller) leaking memory

Commit eff7e72c3 (Detect incomplete caller overrides in Carp) used
this little trick for detecting a @DB::args that an overridden
caller() failed to set:

+  @args = \$i; # A sentinal, which no-one else has the address of

But there is a bug in caller().  The first time caller tries to write
to @DB::args, it calls Perl_init_dbargs first.  That function checks
whether @DB::args is AvREAL, in case someone has assigned to it, and
takes appropriate measures.  But caller doesn’t bother calling
Perl_init_dbargs more than once.  So manually-assigned items in
@DB::args would leak, starting with the *second* call to caller.

Commit eff7e72c3 triggered that bug, resulting in a regression in
Carp, in that it started leaking.  eff7e72c3 was backported to 5.12.2
with commit 97705941a4, so in both 5.12 and 5.14 Carp is affected.

This bug (the caller bug, not Carp’s triggering thereof) also affects
any caller overrides that set @DB::args themselves, if there are
alternate calls to the overridden caller and CORE::caller.

This commit fixes that by changing the if (!PL_dbargs) condition
in pp_caller to if (!PL_dbargs || AvREAL(PL_dbargs)).  I.e., if
@args is either uninitialised or AvREAL then call Perl_init_dbargs.
Perl_init_dbargs also has a bug in it, that this fixes: The array not
only needs AvREAL turned off, but also AvREIFY turned on, so that
assignments to it that occur after its initialisation turn AvREAL back
on again.  (In fact, Larry Wall added a comment suggesting this back
in perl 5.000.)

6 years agoperldelta for 86212507
Ricardo Signes [Fri, 26 Aug 2011 11:55:54 +0000 (07:55 -0400)] 
perldelta for 86212507

6 years agoPerldelta for the unpack "U*" fix
Florian Ragwitz [Fri, 26 Aug 2011 10:02:05 +0000 (12:02 +0200)] 
Perldelta for the unpack "U*" fix

6 years ago[perl #90160] U* gives ‘U0 mode on an empty string’
Father Chrysostomos [Wed, 18 May 2011 21:35:47 +0000 (14:35 -0700)] 
[perl #90160] U* gives ‘U0 mode on an empty string’

This is a regression in 5.10 caused by change 23966/08ca2aa38a29,
which added a bit of faulty logic. It was treating U* in the middle of
a pack template as equivalent to U0, if the input string was empty.

6 years agoSupport gcc-4.x on HP-UX PA-RISC/64
H.Merijn Brand [Thu, 4 Aug 2011 07:20:32 +0000 (09:20 +0200)] 
Support gcc-4.x on HP-UX PA-RISC/64

Correct the socketsize. Probably due to big-endian versus
little-endian, this has always worked on Intel CPUs. This
is a very very old problem,  and it has been the reason I
never used gcc-4 on PA-RISC,  because perl would not pass
the test suite in 64bitall.

Noticeable effects of wrong "$socksizetype" are return codes
of 0 (pass) from functions like getpeername (),  but invalid
(or none) data in the returned structures or a return length
of 0 or 256. In the latter case, the length is stored in the
second part of the 64bit long and the 32bit first part is 0.
This might be true on Intel-like machines too, but the tests
will pass, as the significant part of the returned length is
in the first 32bits and a pointer to int will still see that
correct.  Mind that in that case the 32bits after that might
have been overridden => can of worms.

6 years agoPerldelta for the @INC filter fixes
Florian Ragwitz [Fri, 26 Aug 2011 09:36:59 +0000 (11:36 +0200)] 
Perldelta for the @INC filter fixes

6 years agoFollow-up to d34a6664
Father Chrysostomos [Fri, 3 Jun 2011 21:20:10 +0000 (14:20 -0700)] 
Follow-up to d34a6664

As Nicholas Clark wrote in

> $ valgrind ./perl -Ilib
> ==5542== Memcheck, a memory error detector
> I think that the problem is that this code in S_run_user_filter()
>  ENTER_with_name("call_filter_sub");
>  EXTEND(SP, 2);
> is putting an action on the save stack to write to an address within
> the GP of PL_defgv. However, the perl code run about 10 lines later
> frees up the GP of PL_defgv, so the scope stack now has a dangling
> pointer. 12 lines later at scope exit, the scope stack unwinding
> writes to the pointer, and nasal daemons emerge.

This commit precedes the SAVEGENERICSV with a call to save_gp, to make
sure the GP is not freed (and then a call to GvINTRO_off [set by
save_gp], so that subsequent glob assignments are not implicitly

This basically emulates what happens with ‘local *_ = \$some_scalar’,
but without the extra intermediate RV.

6 years ago[perl #91880] $_ refcounting problems in @INC filters
Father Chrysostomos [Mon, 30 May 2011 15:55:40 +0000 (08:55 -0700)] 
[perl #91880] $_ refcounting problems in @INC filters

In @INC filters (subs returned by subs in @INC), $_ is localised to a
variable to which the next line of source code is to be assigned. The
function in pp_ctl.c that calls it (S_run_user_filter) has a pointer
to that variable.

Up till now, it was not setting the refcount or localising
$_ properly.

‘undef *_’ inside the sub would destroy the only refcount it
had, leaving a freed sv for toke.c to parse (which would crash,
of course).

In some cases, S_run_user_filter has to created a new variable. In
those cases, it was setting $_ to a mortal variable with the TEMP
flag, but with a refcount of 1, which would result in ‘Attempt to free
unreferenced scalar’ warnings if the $_ were freed by the subroutine.

This commit changes S_run_user_filter to use SAVEGENERICSV, rather
than SAVE_DEFSV, to localise $_, since the former lowers the refcount
on scope exit, while the latter does not. So now I have also made it
increase the refcount after assigning to the now-properly-localised $_
(DEFSV). I also turned off the TEMP flag, to avoid weird side effects
(which were what led me to this bug to begin with).

6 years agoCreate a perldelta for 5.14.2
Florian Ragwitz [Fri, 26 Aug 2011 09:08:52 +0000 (11:08 +0200)] 
Create a perldelta for 5.14.2

6 years agoPreliminary version bump for 5.14.2
Florian Ragwitz [Fri, 26 Aug 2011 08:38:05 +0000 (10:38 +0200)] 
Preliminary version bump for 5.14.2

6 years agodisable use of nm on darwin
Ricardo Signes [Wed, 6 Jul 2011 14:34:31 +0000 (10:34 -0400)] 
disable use of nm on darwin

Testing from 10.5 with Xcode 3 to the latest OS X works with usenm='false' but
not always with usenm='true'
(cherry picked from commit 60a655a1ee05c577268377c1135ffabc34dbff43)

6 years agoRemove the RC1 marker v5.14.1
Jesse Vincent [Fri, 17 Jun 2011 00:10:26 +0000 (20:10 -0400)] 
Remove the RC1 marker

6 years agoA pod nit v5.14.1-RC1
Jesse Vincent [Thu, 9 Jun 2011 23:26:33 +0000 (19:26 -0400)] 
A pod nit

6 years agotypo fix
Jesse Vincent [Thu, 9 Jun 2011 23:18:31 +0000 (19:18 -0400)] 
typo fix

6 years agomore perldelta nits
Jesse Vincent [Thu, 9 Jun 2011 22:10:08 +0000 (18:10 -0400)] 
more perldelta nits

6 years agoRemoving XXX sections from perldelta
Jesse Vincent [Thu, 9 Jun 2011 22:01:26 +0000 (18:01 -0400)] 
Removing XXX sections from perldelta

6 years agoFix pod syntax errors
Jesse Vincent [Thu, 9 Jun 2011 21:57:45 +0000 (17:57 -0400)] 
Fix pod syntax errors

6 years agoDocumented the most recent cherrypick.
Jesse Vincent [Thu, 9 Jun 2011 20:05:28 +0000 (16:05 -0400)] 
Documented the most recent cherrypick.

6 years agocherry-pick a delta entry from blead
Jesse Vincent [Thu, 9 Jun 2011 20:02:06 +0000 (16:02 -0400)] 
cherry-pick a delta entry from blead

6 years agoscan_heredoc could reallocate PL_parser->linestr's PV
David Leadbeater [Sat, 14 May 2011 12:57:21 +0000 (13:57 +0100)] 
scan_heredoc could reallocate PL_parser->linestr's PV

Since f0e67a1 it was possible the freed buffer may be read from when
parsing a heredoc. This adds a call to lex_grow_linestr to grow the
buffer and ensure the pointers in PL_parser are updated.

The bug is pretty hard to reproduce, hence no test. I'm able to
reproduce it with the following:

  perl -Meverywhere=re,debug -MParams::Util -e1

6 years agosnapshot perldelta work
Jesse Vincent [Thu, 9 Jun 2011 18:11:49 +0000 (14:11 -0400)] 
snapshot perldelta work