summaryrefslogtreecommitdiff
Commit message (Collapse)AuthorAgeFilesLines
...
* Finalize perldeltaSteve Hay2020-02-291-2/+25
|
* 5.30.2-RC1 todaySteve Hay2020-02-291-0/+1
| | | | (cherry picked from commit 67f717d4992283a8a6a501bf75b64863453970f1)
* perldelta - Remove remaining boilerplate stuff except for AcknowledgementsSteve Hay2020-02-281-81/+1
|
* Adapt Configure to GCC version 10Petr Písař2020-02-272-8/+8
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | I got a notice from Jeff Law <law@redhat.com>: Your particular package fails its testsuite. This was ultimately tracked down to a Configure problem. The perl configure script treated gcc-10 as gcc-1 and turned on -fpcc-struct-return. This is an ABI changing flag and caused Perl to not be able to interact properly with the dbm libraries on the system leading to a segfault. His proposed patch corrected only this one instance of the version mismatch. Reading the Configure script revealed more issues. This patch fixes all of them I found. Please note I do not have GCC 10 available, I tested it by faking the version with: --- a/Configure +++ b/Configure @@ -4672,7 +4672,7 @@ $cat >try.c <<EOM int main() { #if defined(__GNUC__) && !defined(__INTEL_COMPILER) #ifdef __VERSION__ - printf("%s\n", __VERSION__); + printf("%s\n", "10.0.0"); #else printf("%s\n", "1"); #endif (cherry picked from commit 6bd6308fcea3541e505651bf8e8127a4a03d22cd)
* regcomp.c: restore {} braces to DEBUG_PARSE_r multi-statementsYves Orton2020-02-271-4/+4
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | In 15cab4d7052 the if (!SIZE_ONLY) logic was removed from regcomp.c, but in a few places this was excessively zealous, as the braces were removed from multiline constructs inside of DEBUG_PARSE_r macros. EG: DEBUG_PARSE_r(if (!SIZE_ONLY) { stuff1; stuff2; stuff3; }); was turned into DEBUG_PARSE_r( stuff1; stuff2; stuff3; ); Which means that ONLY the first statement in the block was covered by the DEBUG_PARSE_r() conditional logic. The conversion should have been: DEBUG_PARSE_r({ stuff1; stuff2; stuff3; }); IOW, it was necessary to preserve the {} braces in the macro call. This silences various forms of debugging that should not be visible in a plain use re 'debug'; and should only be visible with something like use re Debug => 'ALL'; Eg in: $ ./perl -Ilib -Mre=debug -le'/(foo|bar|baz)/' Compiling REx "(foo|bar|baz)" ~ tying lastbr BRANCH (9) to ender CLOSE1 (12) offset 3 ~ tying lastbr OPEN1 (1) to ender END (14) offset 13 Final program: 1: OPEN1 (3) 3: TRIE-EXACT[bf] (12) <foo> <bar> <baz> 12: CLOSE1 (14) 14: END (0) stclass AHOCORASICK-EXACT[bf] minlen 3 Freeing REx: "(foo|bar|baz)" The "~ tying lastbr" lines are of interest pretty much only to someone working on or maintaining the regex engine and should not be visible to a casual user, not only because they are ugly but also because the context to understand them is missing and they do not help understanding how the regex operates. (cherry picked from commit d8e1e69d20817fd4b9d94736c97ef585900451a4)
* Update targeted release date for 5.30.2Steve Hay2020-02-274-6/+6
| | | | | Now aiming for 14th March. (A security-based 5.30.3 will hopefully follow soonish afterwards.)
* add new release to perlhistreneeb2020-02-271-0/+1
| | | | (cherry picked from commit 0b07af7387796329c0568b1e68d5a16421beb623)
* add epigraph of 5.31.9reneeb2020-02-271-0/+6
| | | | (cherry picked from commit 7724f4c3794b4357947786b9e9a9021d38d0911c)
* tick release 5.31.9 in release schedulereneeb2020-02-271-2/+2
| | | | (cherry picked from commit 358970f26ba445ab374eb2bcb24a78c550e31fd0)
* linkify GH links in last deltaKaren Etheridge2020-02-271-1/+1
| | | | (manually cherry picked from commit 95f5f2bdbe9fa65c6fb0e80932611bb26aafbe1d)
* Update Module::CoreList for 5.31.9reneeb2020-02-271-0/+36
| | | | (cherry picked from commit 05fabd6d18e6b41133ec82e9b94a0eef5db7f0b8)
* Update Module::CoreList for 5.31.9Matthew Horsfall2020-02-273-0/+29
| | | | (manually cherry picked from commit a5183bd1be43b0ca96d6a777290b066c8171b885)
* perldelta - Remove most boilerplate stuffSteve Hay2020-02-131-254/+13
| | | | | Updates to Security, Documentation, Diagnostics and Configuration still to be done, plus the usual Acknowledgements section.
* Re-run Porting/corelist.pl to account for Bzip2 updateSteve Hay2020-02-131-0/+1
|
* perldelta - Add GitHub linksSteve Hay2020-02-131-4/+12
|
* perldelta - Minor tweaksSteve Hay2020-02-131-9/+5
|
* perldelta for af6880c950Hugo van der Sanden2020-02-131-0/+5
| | | | (cherry picked from commit 464d81f96f295f26f605efdfbfb8a82046450c13)
* Update perldelta for all changes from v5.31.7 to v5.31.8Matthew Horsfall2020-02-131-0/+6
| | | | (manually cherry picked from commit 87fd4a59bee543256aa6ddf01070af77ec3b11ca)
* Finalise perldelta and update perlhistNicolas R2020-02-131-0/+8
| | | | (manually cherry picked from commit 149c28f951d2545c6202ec3774ce28d3fdb482a8)
* Updates to perldeltaKarl Williamson2020-02-131-0/+4
| | | | (manually cherry picked from commit a1e5b70092f67a00e1c13c834de719a887462e36)
* perldelta updatesTony Cook2020-02-131-1/+3
| | | | (manually cherry picked from commit 1b8c612c29b1f391558f508211a4425f129d767a)
* perlhist - Fix date of 5.31.0Steve Hay2020-02-131-1/+1
| | | | (cherry picked from commit 0491999d668c71dc1fd30a2af7991225c7ab3b7c)
* regexec: don't increment recursion counter for non-postponed EVALHugo van der Sanden2020-02-122-2/+11
| | | | | | | It wasn't intended to be part of the recursion logic, and doesn't get decremented again (GH 17490). (cherry picked from commit af6880c950bceae5aa17dc228f139d0b4e797594)
* Fix Issue #17372 - Deal with NOTHING regops in trie code properlyYves Orton2020-02-122-2/+26
| | | | | | | We weren't handling NOTHING regops that were not followed by a trieable type in the trie code. (cherry picked from commit ca902fb80835be4a725df117917a4b62cc7022fe)
* Actually fix GH #17370Karl Williamson2020-02-121-0/+3
| | | | | | | | I only added a test, but not the change in 9f16475a53933d1d9c547f871b97b3b12160cece. The test passes except when run under address sanitizer or valgrind. (cherry picked from commit dca9f615c2ca4c784ef9cdd9a7a313de40998bcf)
* PATCH: GH #17370, read beyond buffer in grok_inf_nanKarl Williamson2020-02-121-1/+4
| | | | | | | Like GH #17367, this was caused by a failure to check that we aren't at the end of the buffer after advancing the ptr to it. (cherry picked from commit 9f16475a53933d1d9c547f871b97b3b12160cece)
* PATCH: GH #17367 read 1 beyond end of bufferKarl Williamson2020-02-122-1/+8
| | | | | | | This is a bug in grok_infnan() in which in one place it failed to check that it was reading within bounds. (cherry picked from commit 81d11450691ee281f37c6c4e8055735b972733bd)
* avoid identical stack tracesDavid Mitchell2020-02-126-2/+63
| | | | | | | | | | | | | | | | | | | | | | | GH #15109 The output of caller() (e.g. as produced by carp::Confess) produces multiple identical outputs when within a nested use/require. This is because at the time of calling the 'BEGIN { require ... }', PL_curcop is set to &PL_compiling, which is a fixed buffer within the interpreter, whose individual file and line fields are saved and restored when doing a new require/eval. This means that within the innermost require, PL_compiling has file:lineno of the innermost source file, and multiple saved PL_curcop values in the context stack frames all point to the same &PL_copmpiling. So all levels of the stack trace appear to come from the innermost file. This commit fixes this (after a fashion) by, at the start of calling a BEGIN, making PL_curcop point to a temporary copy of PL_compiling instead. This is all a bit of a hack. (cherry picked from commit f2f32cd638746f538da6db804dab6dd54e654f30)
* Fix MYMALLOC (PERL_MALLOC) build on WindowsSteve Hay2020-02-121-1/+1
| | | | | | | | Commit 34716e2a6e changed the WIN32 version of Perl_my_setenv() from using Newx() to using safesysmalloc() (in S_env_alloc()), but neglected to make the corresponding change from Safefree() to safesysfree(). (cherry picked from commit ff69e883532791953a441f1a5316276bb142797c)
* PATCH: gh#17218 memory leakKarl Williamson2020-02-121-0/+1
| | | | | | Indeed, a variable's ref count was not getting decremented. (cherry picked from commit 0463f3a19af7afac8b402655ad66e5b05c095bcc)
* win32: fix waitpid(-1, WNOHANG) segfault/panicTomasz Konojacki2020-02-121-1/+4
| | | | | | | | | | | waitpid(-1, WNOHANG) would panic or segfault if called when the thread's message queue is not empty. Thanks to Erik Jezierski for the report and diagnosis. [gh #16529] (cherry picked from commit 08e55ec5e3ef6d6c040c0dc8bdec7d59f76bfbe8)
* Update Compress-Raw-Bzip2 to CPAN version 2.089Chris 'BinGOs' Williams2020-02-1213-48/+48
| | | | | | | | | | | | | | | | | | [Delta] 2.089 3 November 2019 * No Changes 2.088 31 October 2019 * Add Support Details 37e04fb3dc50287a3512b004282425c6eedb8af6 * upgrade to Bzip2 1.0.8 027a30848ee57731b435d2ea7af09e532bf6fbfd (cherry picked from commit 1bff26779d92ed756b7d4e5be908124dd5a0a450)
* fix panic caused by printf with %n with utf8 length magicTony Cook2020-02-122-1/+20
| | | | | | fix the reported issue with gh #17221 (cherry picked from commit 712e071bf4b91b0e2970bf38637b1a1b96dcc099)
* PATCH: [perl 134335], gh115,Assert fail in regmatchKarl Williamson2020-02-122-1/+26
| | | | | | | | | | | | | | | | This happens when the regular expression pattern, compiling under /il, ends up with a node attempting to match one of 17 Unicode characters that fold (/i) to multiple characters in the 0-FF range, and the match is run when a UTF-8 locale is in effect that makes such a match legal. The node was being marked as SIMPLE, but only nodes that match a single character should be SIMPLE. This ticket was originally filed as a security issue, but I don't think it is. If I remove the assertion, the match fails, without an out-of-bounds access. And we do not consider the interpreter crashing on a DEBUGGING build a security issue. (cherry picked from commit 2df0dd21423ddf295fe2e5d2a6665300f4c5dd94)
* PATCH: [perl #134329] Use after free in regcomp.cKarl Williamson2020-02-125-34/+88
| | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | | A compiled regex is composed of nodes, forming a linked list, with normally a maximum of 16 bits used to specify the offset of the next link. For patterns that require more space than this, the nodes that jump around are replaced with ones that have wider offsets. Most nodes are unaffected, as they just contain the offset of the next node, and that number is always small. The jump nodes are the ones affected. When compiling a pattern, the 16 bit mechanism is used, until it overflows, at which point the pattern is recompiled with the long jumps instead. When I rewrote the compiler last year to make it generally one pass, I noticed a lot of the cases where a node was added didn't check if the result overflowed (the function that does this returns FALSE in that case). I presumed the prior authors knew better, and did not change things, except to put in a bogus value in the link (offset) field that should cause a crash if it were used. That's what's happening in this ticket. But seeing this example, it's clear that the return value should be checked every time, because you can reach the limit at any time. This commit changes to do that, and to require the function's return value to not be ignored, to guard against future changes. My guess is that the reason it generally worked when there were multiple passes is that the first pass didn't do anything except count space, and that at some point before the end of the pass the return value did get checked, so by the time the nodes were allocated for real, it knew enough to use the long jumps. (cherry picked from commit 3b2e5620ed4a6b341f97ffd1d4b6466cc2c4bc5b)
* PATCH: [perl #134059] panic outputting a warningKarl Williamson2020-02-122-2/+11
| | | | | | | | | | | | | This was due to a logic error on my part. We need to save and restore a value. Instead, it was getting restored to the wrong value. This particular instance of the bug was outputting a fatal error message, so that the only harm is not giving the user the correct info, and creating unnecessary work for them and us when it gets reported. But this bug could manifest itself when trying to output just a warning that the program otherwise would carry on from. (cherry picked from commit cc16d262eb72677cdda2aa9395e943818b85ba38)
* Update Module::CoreList with data so far for the imminent 5.30.2Steve Hay2020-02-123-2/+31
| | | | | ($VERSION bumps and Changes entry for a tentative release date, plus Porting/corelist.pl)
* Bump copyright to 2020 in perl.c and README.Nicolas R2020-02-122-3/+3
| | | | | | | | | check that porting/copyright.t is passing when run with --now ../perl -I../lib porting/copyright.t --now (cherry picked from commit b28d5df592d869103f5066f2b1cb96a039a25057)
* Bump version to 5.30.2, ahead of its impending releaseSteve Hay2020-02-1222-122/+122
| | | | (includes regen/opcode.pl)
* Add new release to perlhistMatthew Horsfall2020-02-111-0/+1
| | | | (cherry picked from commit 10e552ca3c0d1dd77c08a2949003a15e142c8d66)
* Finalise perldelta and update perlhistNicolas R2020-02-111-0/+1
| | | | (manually cherry picked from commit 149c28f951d2545c6202ec3774ce28d3fdb482a8)
* Finalise perldelta and update perlhistChris 'BinGOs' Williams2020-02-111-0/+1
| | | | (manually cherry picked from commit 3af53b7eebc4f74fe09cfa1087fc01aeaacf5807)
* Update epigraphs.pod for 5.31.8 release emailMatthew Horsfall2020-02-111-0/+35
| | | | (cherry picked from commit b614928c8d04868b0f8fdc1553a4e1bc97a43307)
* Update epigraph for v5.31.7Nicolas R2020-02-111-0/+6
| | | | (cherry picked from commit 6633b092b2285ef519da86580624130ceda0d028)
* Update epigraphs.pod for v5.31.6 oneChris 'BinGOs' Williams2020-02-111-0/+22
| | | | (cherry picked from commit 0b5a5c76965a1bd1c2348fac12afcc723f8fff01)
* Tick off 5.31.8 in the release scheduleMatthew Horsfall2020-02-111-2/+2
| | | | (cherry picked from commit 67cf77fd3d65d4c412dd0719661b7f9b61424520)
* Tick off 5.31.7 on 2019-12-20Nicolas R2020-02-111-1/+1
| | | | (cherry picked from commit 6840bbf495a31c12e188e97c979f715ca0b32207)
* Tick off 5.31.6, released 2019-11-20Matthew Horsfall2020-02-111-1/+1
| | | | (cherry picked from commit 06d9a3d13e993e5cadfae73035700bd536e31d44)
* Update release scheduleSawyer X2020-02-111-4/+4
| | | | (cherry picked from commit 3da00ce5e5ff2ce6335c410c0e8b586a4c7c8d4f)
* Change various search.cpan.org references to metacpan.org and www.cpan.orgDan Book2020-02-1110-18/+18
| | | | (cherry picked from commit c23f766f6c261b334740784b1baca327e8118a87)