| Commit message (Collapse) | Author | Age | Files | Lines |
... | |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
GH #16685
In
@a = ($x, undef, undef) = (1))
@a should have 3 elements. v5.25.6-79-gb09ed995ad broke this and was
returning one element.
The fix is simple: that previous commit made it so that elements were
pushed back onto the stack only if they weren't immortal, so
&PL_sv_undef was getting skipped. Make it so they always are.
(cherry picked from commit 282d9dfeb4cea3c2d0335ba78faa3a9db931f1ec)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
GH #17816
This code:
my $x = 1;
print (($x, undef) = (2 => $x));
was printing "22" when it should have been printing "21".
An optimisation skips the 'common values on both sides' test
when the LHS of an assign only contains a single var; as the example
above shows, this is not sufficient.
This was broken by v5.23.1-202-g808ce55782
This commit fixes it by counting undef's on the LHS towards the var
count if they don't appear first.
(cherry picked from commit 5b354d2a8a6fea46c62048464c6722560cb1c907)
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
Add a new perlsecpolicy POD file with detailed descriptions
of the security team's vulnerability remediation workflow and
the criteria used to distinguish security issues from other
types of bugs.
This also switches the team's public contact address to
perl-security@perl.org, and updates the security contact
information shown in github's issue interface.
(cherry picked from commit b135fd4a1ca0074e0baef5764530103cc97cc4fe)
|
|
|
|
|
|
| |
This change documents the previous behavior of the range operator with magic string increment in Perl 5.30 and below - the change was introduced in commit d1bc97feec from GitHub #16770 (RT133695).
(cherry picked from commit f4941eebb5185b70b980fcfea9f7b02f377f1f70)
|
|
|
|
| |
(cherry picked from commit 6eef26b1c82a35912e0b0e884a71a645d4e7cf20)
|
|
|
|
| |
(cherry picked from commit affe02a96fc1fc4aa88073a4a9aedf6a1488e829)
|
|
|
|
|
|
|
| |
On Illumos based distributions GCC is likely the compiler available on the system.
Change tested on SmartOS
(cherry picked from commit 800aab6349e0a8fc07de4c691a51468570c2cd4b)
|
|
|
|
| |
(cherry picked from commit c2e6241c83ac9b30fb37984a432bff9801cc2a3a)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
On several systems the attempt to determine if we "need va_copy() or
similar" results in a SIGBUS instead of a SIGSEGV because the fault
happens pointing at an io device address.
While reviewing accounting logs during the OpenBSD system build, bluhm@
noticed a core dump and deraadt@ tracked it down.
While researching it was discovered that this is a fairly common case in
other systems as well.
Original diff by deraadt@
(cherry picked from commit bec07c3af574f0f22a318c6273a2c4f29afc1251)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
* Improve detection of Intel C/C++ compilers.
My version of Intel C/C++ reports these versions:
✅ starscream% icc -V
Intel(R) C Intel(R) 64 Compiler for applications running on Intel(R) 64, Version 19.1.1.217 Build 20200306
Copyright (C) 1985-2020 Intel Corporation. All rights reserved.
FOR NON-COMMERCIAL USE ONLY
✅ starscream% icpc -V
Intel(R) C++ Intel(R) 64 Compiler for applications running on Intel(R) 64, Version 19.1.1.217 Build 20200306
Copyright (C) 1985-2020 Intel Corporation. All rights reserved.
FOR NON-COMMERCIAL USE ONLY
* simplified case for detecting Intel C++ compiler
* update authors for plicease
(cherry picked from commit 8ffcbbbe4a4411bb0971e61a39fa2608a4ef5145)
|
|
|
|
| |
(manually cherry picked from commit d1bce42ce4c2b5874263b5bc6c4c407812e344b3)
|
|
|
|
| |
(manually cherry picked from commit 1211db3d963005502d6fd60c503cb0003706a3c3)
|
|
|
|
| |
(cherry picked from commit 54d41b60822734cf8df543053f7bd270dfded3ed)
|
|
|
|
| |
(cherry picked from commit 810090184a3d18a5cfe46b173f88c79c5a4a3093)
|
|
|
|
| |
(cherry picked from commit 6822b26820b70fed7be5f3e7f62e1f2c6552b61a)
|
|
|
|
| |
(cherry picked from commit 2ebac2d630023dc681e95512b4fe24ca5aa77d74)
|
|
|
|
| |
(cherry picked from commit 4603d7dabf1b5f331d23c95d70b16e656c8124b0)
|
|
|
|
| |
(cherry picked from commit 78cf49c749a641e22c959a4eda2a2956513334f7)
|
|
|
|
| |
(cherry picked from commit aadc6422eaec39c22e4b4ce00a1e3ff619c41154)
|
|
|
|
|
|
|
| |
Minix has a #define for si_signo to _info._signo, despite not having
a struct siginfo; this caused compilation errors.
(cherry picked from commit 3555a05cbfc80f94a4fe8ae3789f03db69701ca4)
|
|
|
|
|
|
|
|
|
|
|
|
| |
During study_chunk, under various conditions we avoid recursing into
a GOSUB. But we must avoid giving the enclosing scope the idea that
this GOSUB would match only an empty string, since that could trigger
wrong optimizations (eg CURLYX => CURLYM in the ticket).
So we mark the construct as infinite, as in the code branch where we
_do_ recurse into it.
(cherry picked from commit f4cd5e29bc15621f2ab8fc5d7de0e68e62d43999)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This was an assertion failure in regexec.c under rare circumstances. A
reduction of the fuzzed test case is now in pat_advanced.t
The root cause of this was that the pattern being compiled was encoded in
UTF-8 and 'use locale' was in effect, equivalent to the /l charset, and
then the charset was reset inside the pattern, to /d. But /d in a UTF-8
patterns is illegal, hence the later assertion failure.
The solution is to reset instead to /u when the pattern is UTF-8.
(cherry picked from commit bb58640a409949759318542317e353e2241cc408)
|
|
|
|
|
|
|
| |
The code for skipping whitespace in regex bracket character groups
was walking past the end of the regex in some cases.
(cherry picked from commit 90f66c42e4513ae5d907805fbf28b9967a90d6c5)
|
|
|
|
|
|
|
|
| |
The grok_infnan() function was walking past the end of the string
while skipping over trailing '0' characters. This is another
variation of #17370.
(cherry picked from commit bbd8607595f9856d6e75ed63130034cf645feb4a)
|
|
|
|
|
|
| |
(not cherry picked from commit 2122602f85 because version 2.175 was
already released in perl 5.33.1 and was slightly different to what is now
here due to 263d8ae211 not having been back-ported)
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
For example:
use Tie::Scalar;
use Data::Dumper;
sub T::TIESCALAR { bless {}, shift}
sub T::FETCH { die }
my $x;
tie $x, "T" or die;
while(1) {
eval { () = Dumper( [ \$x ] ) };
}
would leak various work SVs.
I start a new scope (ENTER/LEAVE) for most recursive DD_dump() calls
so that the work SVs don't accumulate on the temps stack, for example
if we're dumping a large array we'd end up with several SVs on the
temp stack for each member of the array.
The exceptions are where I don't expect a large number of unreleased
temps to accumulate, as with scalar or glob refs.
(cherry picked from commit 815b4be4ab7ae210f796fc9d29754e55fc0d1f0e)
|
|
|
|
|
|
|
|
|
|
| |
these can leak if the value being dumped (or any part of it)
had get magic and that magic throws an exception.
Several other SVs can also leak in that case, but cleaning those up
is more complex.
(cherry picked from commit b98a3a6d08f681353d0b357fd1cce437c93656e7)
|
|
|
|
|
|
|
| |
do this by mortalizing the SV on creation, rather than when we
push it on the stack
(cherry picked from commit 41463160be4baa0d81d9d8297508a1b9bdcaa206)
|
|
|
|
|
|
| |
This was a simple matter of one path failing to free the memory.
(cherry picked from commit 6841cd5977c2d35ad75233734c66983a65613fce)
|
|
|
|
|
|
|
|
|
|
|
|
| |
SvCUR() before the SvGROW() calls could result in reading beyond the
end of a buffer.
It wasn't a problem in the normal case, since sv_grow() just calls
realloc() which has its own notion of how big the memory block is, but
if the SV is SvOOK() sv_backoff() tries to move SvCUR()+1 bytes, which
might be larger than the currently allocated size of the PV.
(cherry picked from commit 45f235c116d4deab95c576aff77fe46d609f8553)
|
|
|
|
| |
(cherry picked from commit b0d2479a156520088b5c09de9b5322bb2381c19c)
|
|
|
|
| |
(cherry picked from commit cb3055457b8af3615b233f18a8ea27f325bca728)
|
|
|
|
| |
(cherry picked from commit 726eb38ebe55ff58f98f5dc47a6354b1342c067b)
|
|
|
|
| |
(manually cherry picked from commit eeda0517e1c1b8df9f095ae4ab97f5dcc4f6f092)
|
| |
|
|
|
|
|
|
|
| |
($VERSION bumps, Porting/corelist.pl and Changes entry for a tentative
release date. Includes setting the tentative release date in %delta, which
is contrary to the RMG instructions for an RC, but is currently necessary
to avoid dist/Module-CoreList/t/maintainer.t failing its last test.)
|
|
|
|
| |
(includes regen/opcode.pl)
|
|
|
|
|
|
| |
(not cherry picked from commit 0382c61de115275c09bf1fbe39aa02e6118da28c
because a different sequence of events means that that commit made the
next perldelta "perl5330delta" rather than "perl5321delta" as needed here)
|
|
|
|
| |
(manually cherry picked from commit a47e9fb2f5da06ddc89e765be1fc30c4a8c9c1d5)
|
|
|
|
| |
(cherry picked from commit 59a70a90cadf2eec45992b903e1e5fe3f50e2173)
|
|
|
|
| |
(cherry picked from commit 2adfde9e14b336c8266d84ba513fb119f028c1ab)
|
|
|
|
| |
(cherry picked from commit eae27cd5aa783f0e2c97ff11fee8cf2d7aee7ac1)
|
|
|
|
| |
(cherry picked from commit fdc3c2f3924489c82956821bfd67d954736360e1)
|
|
|
|
| |
(cherry picked from commit 56595c6cbe9eed2298306b28f30b9ac5fd88b180)
|
|
|
|
| |
(cherry picked from commit a1e82abeae8300aeb5da0e76975d0dd9202b7f8f)
|
|
|
|
| |
(cherry picked from commit 019e34c2029d812bfe75e990c48a751881ed7776)
|
|
|
|
| |
(cherry picked from commit fb8d98f054813d9392f9670e4c4ee2f002b1d51e)
|
|
|
|
| |
(cherry picked from commit 5654d3dc294725b043826642f937c57ae81536a7)
|
|
|
|
| |
(cherry picked from commit b69b5077393db9b8ffa440eba15b27073cbac617)
|
|
|
|
| |
(cherry picked from commit 7d61a66feaf320070725eb123e51af30560bb5ec)
|