| Commit message (Collapse) | Author | Age | Files | Lines |
| |
|
| |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
RT #131083
Recent commits v5.25.10-81-gd69c430 and v5.25.10-82-g67dd6f3 added
out-of-range/overflow checks for the offset arg of vec(). However in
lvalue context, these croaks now happen before the SVt_PVLV was created,
rather than when its set magic was called. This means that something like
sub f { $x = $_[0] }
f(vec($s, -1, 8))
now croaks even though the out-of-range value never ended up getting used
in lvalue context.
This commit fixes things by, in pp_vec(), rather than croaking, just set
flag bits in LvFLAGS() to indicate that the offset is -Ve / out-of-range.
Then in Perl_magic_getvec(), return 0 if these flags are set, and in
Perl_magic_setvec() croak with a suitable error.
|
|\ |
|
|/
|
|
|
|
|
|
|
| |
This was noted by Jarkko was a missing instruction for something
that tends to fail but we usually don't notice. ("We" here excludes
Jarkko who randomly finds this broken without us noticing.)
I wasn't sure where to put this, but preparing the tarball seems
like an appropriate time.
|
|
|
|
| |
the bare form wasn't deprecated in 5.30
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
The warning
do "%s" failed, '.' is no longer in @INC
was added in the previous devel release; this commit enhances it to say
do "%s" failed, '.' is no longer in @INC; did you mean do "./%s"
and updates the relevant docs.
See http://nntp.perl.org/group/perl.perl5.porters/243788.
|
| |
|
| |
|
|
|
|
|
| |
Most invocation examples included it, but some were missing.
Add them for consistency.
|
|
|
|
| |
While equivalent to to the -D…=n form, the -U form is more common.
|
|\
| |
| |
| | |
Also remove it from the test environment in case it's set by the user.
|
| | |
|
| | |
|
|/
|
|
|
| |
It intereferes with tests of @INC contents, and all core tests must work
without it.
|
| |
|
|
|
|
| |
follow-up to the previous commit's reverting of base.pm @INC changes.
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
This reverts:
458470f62360040dcd4b5a55c8ba07503e1af5fc
362f3f748cb84934a072fadbfb8b51090e2f9afe
bca552795994a553e07b38a6f82a233533919926
and the base.pm part of
8901ddee94b1bc3764b4278d1cb26bed30bc2605
This commit removes all the recent stuff that made base.pm localise
@INC and remove a trailing '.'.
This is because perl 5.26.0 will be released with '.' in @INC disabled by
default.
See RT #128769.
|
| |
|
|
|
|
|
|
|
| |
RT #131033
A recently added test checked for a memory wrap condition, which won't
happen if memory wrap checking is disabled.
|
| |
|
|
|
|
| |
Ran regen/opcode.pl to regenerate
|
|
|
|
| |
Ran regen/uconfig_h.pl to regenerate
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
| |
|
|
|
|
|
| |
This includes cleanups, adding obituary notice for Kip, upgraded
modules, and fixing a small unescaped <>.
|
| |
|
|
|
|
|
|
|
|
|
|
|
| |
This reverts commit d9fc04eebe29b8cf5f6f6bf31373b202eafa44d6.
As discussed in
http://www.nntp.perl.org/group/perl.perl5.porters/2016/05/msg236423.html,
the current perl6-shebang code has rather sharp edge-cases. Hence a revert
until we come up with a better solution seems wise.
(cherry picked from commit f691e4455dd520eff11e7f070a9b034b0fa5ca1c)
|
| |
|
| |
|
| |
|
|
|
|
| |
Reported by kid51++
|
| |
|
|
|
|
|
|
| |
By running t/porting/customized.t --regen. This should have been done as
final part of CPAN-sync for IO-Compress et al in commit
5173674b1cb46b59301b559929904bc67fa15056 on Mar 10 2017.
|
|
|
|
|
| |
Other tests are run from t/ and so they add ".." to @INC, but
this test runs from the main dir, so it needs to add ".".
|
| |
|
|
|
|
|
| |
This should enable us to close
https://rt.perl.org/Ticket/Display.html?id=130759.
|
|\ |
|
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| |
| | |
RT #130915
In something like
vec($str, $bignum, 16)
(i.e. where $str is treated as a series of 16-bit words), Perl_do_vecget()
and Perl_do_vecset() end up doing calculations equivalent to:
$start = $bignum*2;
$end = $start + 2;
Currently both these calculations can wrap if $bignum is near the maximum
value of a STRLEN (the previous commit already fixed cases for $bignum >
max(STRLEN)).
So this commit makes them check for potential overflow before doing such
calculations.
It also takes account of the fact that the previous commit changed the
type of offset from signed to unsigned.
Finally, it also adds some tests to t/op/vec.t for where the 'word'
overlaps the end of the string, for example
$x = vec("ab", 0, 64)
should behave the same as:
$x = vec("ab\0\0\0\0\0\0", 0, 64)
This uses a separate code path, and I couldn't see any tests for it.
This commit is based on an earlier proposed fix by Aaron Crane.
|
|/
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| |
... and fix up its caller, pp_vec().
This is part of a fix for RT #130915.
pp_vec() is responsible for extracting out the offset and size from SVs on
the stack, and then calling do_vecget() with those values. (Sometimes the
call is done indirectly by storing the offset in the LvTARGOFF() field of
a SVt_PVLV, then later Perl_magic_getvec() passes the LvTARGOFF() value to
do_vecget().)
Now SvCUR, SvLEN and LvTARGOFF are all of type STRLEN (a.k.a Size_t),
while the offset arg of do_vecget() is of type SSize_t (i.e. there's a
signed/unsigned mismatch). It makes more sense to make the arg of type
STRLEN. So that is what this commit does.
At the same time this commit fixes up pp_vec() to handle all the
possibilities where the offset value can't fit into a STRLEN, returning 0
or croaking accordingly, so that do_vecget() is never called with a
truncated or wrapped offset.
The next commit will fix up the internals of do_vecget() and do_vecset(),
which have to worry about offset*(2^n) wrapping or being > SvCUR().
This commit is based on an earlier proposed fix by Aaron Crane.
|
|\
| |
| |
| |
| | |
With no automatic smoking, this build option has suffered some bitrot over
the last few months.
|
| |
| |
| |
| |
| | |
t/porting/libperl.t under -DPERL_GLOBAL_STRUCT_PRIVATE doesn't like
non-const static data structures
|
| |
| |
| |
| |
| | |
t/porting/libperl.t under -DPERL_GLOBAL_STRUCT_PRIVATE doesn't like
non-const static data structures
|
| |
| |
| |
| |
| |
| |
| |
| |
| | |
I added the global string constant PL_isa_DOES recently. This caused
t/porting/libperl.t to fail under -DPERL_GLOBAL_STRUCT_PRIVATE builds.
This commit makes PL_isa_DOES be declared and defined in a similar
way to other such global constants. This is pure cargo-culting - I have no
real idea of the point of all the EXTCONST, INIT and globvar.sym stuff.
|
|/
|
|
|
|
| |
For -DPERL_GLOBAL_STRUCT_PRIVATE builds, it checks that there aren't any
global symbols. Make it display the symbols if it finds any. It already
does so for bss; this commit adds data and common diag()s.
|