In perl.git, the branch maint-5.22 has been updated <http://perl5.git.perl.org/perl.git/commitdiff/d6d49c3fc29d67d2932be51179346ab299a67c29?hp=bc2d3ae58d16ea4934b4e2de00aa4e96cac33e93>
- Log ----------------------------------------------------------------- commit d6d49c3fc29d67d2932be51179346ab299a67c29 Author: Steve Hay <[email protected]> Date: Wed Apr 6 18:09:53 2016 +0100 perldelta - Fill in updated modules M pod/perldelta.pod commit 02ec33ad10e7f2756f26536511712cff68952447 Author: Steve Hay <[email protected]> Date: Wed Apr 6 18:09:27 2016 +0100 Correct Module::CoreList's listing of its own $VERSION M dist/Module-CoreList/lib/Module/CoreList.pm commit e387619d464a66147bed1998090f8b2e6103b5ce Author: Steve Hay <[email protected]> Date: Wed Apr 6 17:53:30 2016 +0100 perldelta - Remove most boilerplate M pod/perldelta.pod commit 2ef56a020786f675e920c377f636d076869ebe9c Author: Abigail <[email protected]> Date: Wed Apr 6 17:36:55 2016 +0100 perldelta for various 5.23.9 changes (manually cherry picked from commit 7d12a7395ed4377d6531130e7cfa743ad5b46530) M pod/perldelta.pod commit 54a631c5fdee6f3ae0275313c8e09fadf369e19e Author: Stevan Little <[email protected]> Date: Wed Apr 6 14:04:00 2016 +0100 perldelta for various 5.23.7 changes (manually cherry picked from commit c0883d63aedd359ed16dc7108daa8809e2448092) M pod/perldelta.pod commit 183f52c1f71c33f9bbcef293979bd6f89e0a1457 Author: David Golden <[email protected]> Date: Wed Apr 6 13:56:32 2016 +0100 perldelta for a 5.23.6 change (manually cherry picked from commit d9d208b8680e4613320a3db71f162c8acf4b2c8f) M pod/perldelta.pod commit 0bbdca92ec4a649692a4251aaf3de9198b5fb96f Author: Abigail <[email protected]> Date: Wed Apr 6 13:48:00 2016 +0100 perldelta for various 5.23.5 changes (manually cherry picked from commit 83144be336909f4c030bce1df7d2a06af2f25ec6) M pod/perldelta.pod commit 479ecbd785d4fc96d0696d99a644839a8fc04c4c Author: Tony Cook <[email protected]> Date: Wed Apr 6 13:40:23 2016 +0100 perldelta for 4732711e2548 (cherry picked from commit 084f2f7421ccd86662aab59f5d09af70db14eda6) M pod/perldelta.pod commit 9c794eb23273aa71fcd16f4ff9372adf72e0fa4a Author: Karl Williamson <[email protected]> Date: Wed Apr 6 13:38:24 2016 +0100 perldelta for ac33c51 (manually cherry picked from commit ac33c516140ee213a8a20ada506f97b3a7776ae4) M pod/perldelta.pod commit 7a4f80b96a1837446dfa9abd701798c119ef055a Author: Tony Cook <[email protected]> Date: Thu Dec 17 17:05:33 2015 +1100 perldelta for e3962106e93f (cherry picked from commit b3d7d86513d56fd205d6766e579023fe4c12eeea) M pod/perldelta.pod commit 8d57ceebe7deb781ffaad68246c6c3ac66fbb24b Author: Tony Cook <[email protected]> Date: Wed Mar 9 12:02:50 2016 +1100 perldelta for c2538af7458 (cherry picked from commit 4511cd778b9978d1d54b01038add31872ed66546) M pod/perldelta.pod commit 6f1a5b6c747574fd2207b40923ffd3a11a50c025 Author: Jarkko Hietaniemi <[email protected]> Date: Fri Dec 18 08:13:39 2015 -0500 perldelta for 3118d7d (ppc64el fp) (cherry picked from commit 48fbd301203c991f71b6c2ceec0b352fef9994c2) M pod/perldelta.pod commit 22d2b15c96491d86014525212b759c812beaee5b Author: Sawyer X <[email protected]> Date: Wed Apr 6 13:30:02 2016 +0100 Document eba98284740b799def26803ebac340aaa8930437 (cherry picked from commit 9857cc20fa16f8dd93813fbb8f839830d1a4fd51) M pod/perldelta.pod commit 344957d5a31c3d79d195b7877d4b51ac69c7cc6d Author: Sawyer X <[email protected]> Date: Wed Apr 6 13:27:42 2016 +0100 Document e57270be442bfaa9dc23eebd67485e5a806b44e3: I wasn't sure where or how much of it to document, but it seems like it's important, and this relating to permissions not being removed, I consider it security-related. This is similiar to what the original Debian ticket that relates to it mentioned. I've cut Niko's text a bit shorter, taken from the commit message itself. (cherry picked from commit 07450df75585c03dda7c25f07a88139918aeb0ea) M pod/perldelta.pod commit 8b72f15d288dad778af5a1477f8742c09a8574d4 Author: Tony Cook <[email protected]> Date: Wed Apr 6 13:25:10 2016 +0100 perldelta for 1bb1a3d6d35 (cherry picked from commit 54e70d91fbed63597a6d5ea1113abcb56b8a22c0) M pod/perldelta.pod commit faf2502a373ceeeeb045082c25f1359fefc83298 Author: Tony Cook <[email protected]> Date: Wed Apr 6 13:23:36 2016 +0100 perldelta for 27895dda8085, ac3b837b9e1b (manually cherry picked from commit 84279daf2591f1fa128c1c258e8010ca25930fb3) M pod/perldelta.pod commit 15a0b3785121a0d2f5ceee4d96280b408d01f698 Author: Tony Cook <[email protected]> Date: Wed Feb 3 14:52:00 2016 +1100 perldelta for 23c4e91245a4 (cherry picked from commit 19b46ab5624b4e6a627a3565b8da36643b8a6ce6) M pod/perldelta.pod commit 07dee34869c88d017e69c595a6664ea4aa1f63bf Author: Tony Cook <[email protected]> Date: Wed Apr 6 13:20:30 2016 +0100 perldelta for 61d30259f32e I don't think the two separate patches need separate entries (cherry picked from commit 388b516534a282446fec211a49f89840e90748e0) M pod/perldelta.pod commit 846063f5614720d1f37cb97d78abf761a580a63e Author: Tony Cook <[email protected]> Date: Mon Jan 11 10:46:50 2016 +1100 perldelta for a7162bf74f38 (cherry picked from commit 3c84cb847a0617ac7c7ef77edfb209aa1f32fd0e) M pod/perldelta.pod commit f32c5c848134015074366693f32b3f7ab0d0a33a Author: Tony Cook <[email protected]> Date: Thu Jan 7 16:27:08 2016 +1100 perldelta for 0cd52e23ae64 (cherry picked from commit 40204b1c4748d4364559f08a1703d499b95b6a4c) M pod/perldelta.pod commit 98505781d115a60f539c0b07ce1881bdd13097f3 Author: Tony Cook <[email protected]> Date: Mon Dec 14 10:13:43 2015 +1100 perldelta for d3b9036e206e (cherry picked from commit d43e55a37dc67c540aaf30768ac23008b0ec244b) M pod/perldelta.pod commit 1585f9b823bc0e768246eee3107b9f33096ff527 Author: Tony Cook <[email protected]> Date: Mon Dec 14 10:10:49 2015 +1100 perldelta for e8c18a8486f7 (cherry picked from commit 079bf24b2ae7f96cc1be1f4367611adf69e84e4b) M pod/perldelta.pod ----------------------------------------------------------------------- Summary of changes: dist/Module-CoreList/lib/Module/CoreList.pm | 6 +- pod/perldelta.pod | 358 +++++++++------------------- 2 files changed, 116 insertions(+), 248 deletions(-) diff --git a/dist/Module-CoreList/lib/Module/CoreList.pm b/dist/Module-CoreList/lib/Module/CoreList.pm index 8a68f9a..f8bd5e0 100644 --- a/dist/Module-CoreList/lib/Module/CoreList.pm +++ b/dist/Module-CoreList/lib/Module/CoreList.pm @@ -12375,9 +12375,9 @@ for my $version ( sort { $a <=> $b } keys %released ) { 'File::Spec::Unix' => '3.56_01', 'File::Spec::VMS' => '3.56_01', 'File::Spec::Win32' => '3.56_01', - 'Module::CoreList' => '5.20160320', - 'Module::CoreList::TieHashDelta'=> '5.20160320', - 'Module::CoreList::Utils'=> '5.20160320', + 'Module::CoreList' => '5.20160410', + 'Module::CoreList::TieHashDelta'=> '5.20160410', + 'Module::CoreList::Utils'=> '5.20160410', 'XS::APItest' => '0.72_01', }, removed => { diff --git a/pod/perldelta.pod b/pod/perldelta.pod index 1d7369a..0077de3 100644 --- a/pod/perldelta.pod +++ b/pod/perldelta.pod @@ -2,9 +2,6 @@ =head1 NAME -[ this is a template for a new perldelta file. Any text flagged as XXX needs -to be processed before release. ] - perldelta - what is new for perl v5.22.2 =head1 DESCRIPTION @@ -15,18 +12,6 @@ release. If you are upgrading from an earlier release such as 5.22.0, first read L<perl5221delta>, which describes differences between 5.22.0 and 5.22.1. -=head1 Notice - -XXX Any important notices here - -=head1 Core Enhancements - -XXX New core language features go here. Summarize user-visible core language -enhancements. Particularly prominent performance optimisations could go -here, but most should go in the L</Performance Enhancements> section. - -[ List each enhancement as a =head2 entry ] - =head1 Security =head2 fix out of boundary access in Win32 path handling @@ -39,345 +24,228 @@ L<[perl #126755]|https://rt.perl.org/Ticket/Display.html?id=126755> This is CVE-2015-8607. For more information see L<[perl #126862]|https://rt.perl.org/Ticket/Display.html?id=126862> -=head1 Incompatible Changes - -XXX For a release on a stable branch, this section aspires to be: +=head2 Set proper umask before calling C<mkstemp(3)> - There are no changes intentionally incompatible with 5.XXX.XXX - If any exist, they are bugs, and we request that you submit a - report. See L</Reporting Bugs> below. +In 5.22 perl started setting umask to 0600 before calling C<mkstemp(3)> +and restoring it afterwards. This wrongfully tells open(2) to strip +the owner read and write bits from the given mode before applying it, +rather than the intended negation of leaving only those bits in place. -[ List each incompatible change as a =head2 entry ] +Systems that use mode 0666 in C<mkstemp(3)> (like old versions of +glibc) createa a file with permissions 0066, leaving world read and +write permissions regardless of current umask. -=head1 Deprecations +This has been fixed by using umask 0177 instead. [perl #127322] -XXX Any deprecated features, syntax, modules etc. should be listed here. +=head2 Avoid accessing uninitialized memory in win32 C<crypt()> -=head2 Module removals +Added validation that will detect both a short salt and invalid characters +in the salt. L<[perl #126922]|https://rt.perl.org/Ticket/Display.html?id=126922> -XXX Remove this section if inapplicable. - -The following modules will be removed from the core distribution in a -future release, and will at that time need to be installed from CPAN. -Distributions on CPAN which require these modules will need to list them as -prerequisites. - -The core versions of these modules will now issue C<"deprecated">-category -warnings to alert you to this fact. To silence these deprecation warnings, -install the modules in question from CPAN. - -Note that these are (with rare exceptions) fine modules that you are encouraged -to continue to use. Their disinclusion from core primarily hinges on their -necessity to bootstrapping a fully functional, CPAN-capable Perl installation, -not usually on concerns over their design. - -=over - -=item XXX - -XXX Note that deprecated modules should be listed here even if they are listed -as an updated module in the L</Modules and Pragmata> section. - -=back +=head2 Remove duplicate environment variables from C<environ> -[ List each other deprecation as a =head2 entry ] +Previously, if an environment variable appeared more than once in +C<environ[]>, C<%ENV> would contain the last entry for that name, +while a typical C<getenv()> would return the first entry. We now +make sure C<%ENV> contains the same as what C<getenv> returns. -=head1 Performance Enhancements +Second, we remove duplicates from C<environ[]>, so if a setting +with that name is set in C<%ENV> we won't pass an unsafe value +to a child process. -XXX Changes which enhance performance without changing behaviour go here. -There may well be none in a stable release. +[CVE-2016-2381] -[ List each enhancement as a =item entry ] - -=over 4 - -=item * - -XXX +=head1 Incompatible Changes -=back +There are no changes intentionally incompatible with 5.22.1. +If any exist, they are bugs, and we request that you submit a +report. See L</Reporting Bugs> below. =head1 Modules and Pragmata -XXX All changes to installed files in F<cpan/>, F<dist/>, F<ext/> and F<lib/> -go here. If Module::CoreList is updated, generate an initial draft of the -following sections using F<Porting/corelist-perldelta.pl>. A paragraph summary -for important changes should then be added by hand. In an ideal world, -dual-life modules would have a F<Changes> file that could be cribbed. - -[ Within each section, list entries as a =item entry ] - -=head2 New Modules and Pragmata - -=over 4 - -=item * - -XXX - -=back - =head2 Updated Modules and Pragmata =over 4 =item * -L<XXX> has been upgraded from version A.xx to B.yy. - -=back - -=head2 Removed Modules and Pragmata - -=over 4 +L<File::Spec> has been upgraded from version 3.56 to 3.56_01. =item * -XXX +L<Module::CoreList> has been upgraded from version 5.20151213 to 5.20160410. =back =head1 Documentation -XXX Changes to files in F<pod/> go here. Consider grouping entries by -file and be sure to link to the appropriate page, e.g. L<perlfunc>. - -=head2 New Documentation - -XXX Changes which create B<new> files in F<pod/> go here. - -=head3 L<XXX> - -XXX Description of the purpose of the new file here - =head2 Changes to Existing Documentation -XXX Changes which significantly change existing files in F<pod/> go here. -However, any changes to F<pod/perldiag.pod> should go in the L</Diagnostics> -section. - -=head3 L<XXX> +=head3 L<perlfunc> =over 4 =item * -XXX Description of the change here +The documentation of C<hex> has been revised to clarify valid inputs. =back -=head1 Diagnostics - -The following additions or changes have been made to diagnostic output, -including warnings and fatal error messages. For the complete list of -diagnostic messages, see L<perldiag>. - -XXX New or changed warnings emitted by the core's C<C> code go here. Also -include any changes in L<perldiag> that reconcile it to the C<C> code. - -=head2 New Diagnostics - -XXX Newly added diagnostic messages go under here, separated into New Errors -and New Warnings - -=head3 New Errors +=head1 Configuration and Compilation =over 4 =item * -XXX L<message|perldiag/"message"> +Dtrace builds now build sucessfully on systems with a newer dtrace +that require an input object file that uses the probes in the F<.d> +file. -=back - -=head3 New Warnings - -=over 4 +Previously the probe would fail and cause a build failure. [perl +#122287] =item * -XXX L<message|perldiag/"message"> +F<Configure> no longer probes for F<libnm> by default. Originally +this was the "New Math" library, but the name has been re-used by the +GNOME NetworkManager. [perl #127131] =back -=head2 Changes to Existing Diagnostics +=head1 Platform Support -XXX Changes (i.e. rewording) of diagnostic messages go here +=head2 Platform-Specific Notes =over 4 -=item * +=item ppc64el floating point -XXX Describe change here +The floating point format of ppc64el (Debian naming for little-endian +PowerPC) is now detected correctly. -=back +=item OS X/Darwin -=head1 Utility Changes +Builds with both -DDEBUGGING and threading enabled would fail with a +"panic: free from wrong pool" error when built or tested from Terminal +on OS X. This was caused by perl's internal management of the +environment conflicting with an atfork handler using the libc +setenv() function to update the environment. -XXX Changes to installed programs such as F<perlbug> and F<xsubpp> go here. -Most of these are built within the directory F<utils>. - -[ List utility changes as a =head2 entry for each utility and =item -entries for each change -Use L<XXX> with program names to get proper documentation linking. ] - -=head2 L<XXX> - -=over 4 - -=item * - -XXX +Perl now uses setenv()/unsetenv() to update the environment on OS X. +[perl #126240] =back -=head1 Configuration and Compilation - -XXX Changes to F<Configure>, F<installperl>, F<installman>, and analogous tools -go here. Any other changes to the Perl build process should be listed here. -However, any platform-specific changes should be listed in the -L</Platform Support> section, instead. - -[ List changes as a =item entry ]. +=head1 Internal Changes =over 4 =item * -XXX +Remove unwarranted assertion in C<Perl_newATTRSUB_x()>. If a stub subroutine +definition with a prototype has been seen, then any subsequent stub (or +definition) of the same subroutine with an attribute was causing an assertion +failure because of a null pointer. +L<[perl #126845]|https://rt.perl.org/Ticket/Display.html?id=126845> =back -=head1 Testing - -XXX Any significant changes to the testing of a freshly built perl should be -listed here. Changes which create B<new> files in F<t/> go here as do any -large changes to the testing harness (e.g. when parallel testing was added). -Changes to existing files in F<t/> aren't worth summarizing, although the bugs -that they represent may be covered elsewhere. - -[ List each test improvement as a =item entry ] +=head1 Selected Bug Fixes =over 4 =item * -XXX - -=back - -=head1 Platform Support - -XXX Any changes to platform support should be listed in the sections below. - -[ Within the sections, list each platform as a =item entry with specific -changes as paragraphs below it. ] - -=head2 New Platforms - -XXX List any platforms that this version of perl compiles on, that previous -versions did not. These will either be enabled by new files in the F<hints/> -directories, or new subdirectories and F<README> files at the top level of the -source tree. - -=over 4 - -=item XXX-some-platform - -XXX - -=back - -=head2 Discontinued Platforms - -XXX List any platforms that this version of perl no longer compiles on. - -=over 4 - -=item XXX-some-platform +Calls to the placeholder C<&PL_sv_yes> used internally when an +import() or unimport() method isn't found now correctly handle scalar +context. [perl #126042] -XXX - -=back +=item * -=head2 Platform-Specific Notes +The pipe() operator would assert for DEBUGGING builds instead of +producing the correct error message. The condition asserted on is +detected and reported on correctly without the assertions, so the +assertions were removed. [perl #126480] -XXX List any changes for specific platforms. This could include configuration -and compilation changes or changes in portability/compatibility. However, -changes within modules for platforms should generally be listed in the -L</Modules and Pragmata> section. +=item * -=over 4 +In some cases, failing to parse a here-doc would attempt to use freed +memory. This was caused by a pointer not being restored correctly. +[perl #126443] -=item XXX-some-platform +=item * -XXX +Report more context when we see an array where we expect to see an +operator and avoid an assertion failure. [perl #123737] -=back +=item * -=head1 Internal Changes +If a here-doc was found while parsing another operator, the parser had +already read end of file, and the here-doc was not terminated, perl +could produce an assertion or a segmentation fault. This now reliably +complains about the unterminated here-doc. [perl #125540] -XXX Changes which affect the interface available to C<XS> code go here. Other -significant internal changes for future core maintainers should be noted as -well. +=item * -[ List each change as a =item entry ] - -=over 4 +Caching of DESTROY methods could result in a non-pointer or a +non-STASH stored in the SvSTASH() slot of a stash, breaking the B +STASH() method. The DESTROY method is now cached in the MRO metadata +for the stash. [perl #126410] =item * -XXX - -=back +Avoid parsing beyond the end of the buffer when processing a C<#line> +directive with no filename. [perl #127334] -=head1 Selected Bug Fixes +=item * -XXX Important bug fixes in the core language are summarized here. Bug fixes in -files in F<ext/> and F<lib/> are best summarized in L</Modules and Pragmata>. +Perl 5.22 added support to the C99 hexadecimal floating point notation, +but sometimes misparses hex floats. This had been fixed. +[perl #127183] -[ List each fix as a =item entry ] +=item * -=over 4 +Certain regex patterns involving a complemented posix class in an +inverted bracketed character class, and matching something else +optionally would improperly fail to match. An example of one that could +fail is C</qr/_?[^\Wbar]\x{100}/>. This has been fixed. +[perl #127537] =item * -XXX +Fixed an issue with C<< pack >> where C<< pack "H" >> (and C<< pack "h" >>) +could read past the source when given a non-utf8 source, and a utf8 target. +[perl #126325] -=back +=item * -=head1 Known Problems +Fixed some cases where perl would abort due to a segmentation fault, +or a C-level assert. [perl #126602], [perl #126193]. -XXX Descriptions of platform agnostic bugs we know we can't fix go here. Any -tests that had to be C<TODO>ed for the release would be noted here. Unfixed -platform specific bugs also go here. +=item * -[ List each fix as a =item entry ] - -=over 4 +Avoid leaking memory when setting C<$ENV{foo}> on darwin. +L<[perl #126240]|https://rt.perl.org/Ticket/Display.html?id=126240> =item * -XXX +Correctly raise an error when trying to compile patterns with +unterminated character classes while there are trailing backslashes. +[perl #126141]. -=back +=item * -=head1 Errata From Previous Releases - -=over 4 +Handle C<NOTHING> regops and C<EXACTFU_SS> regops in C<make_trie> properly. +[perl #126206] =item * -XXX Add anything here that we forgot to add, or were mistaken about, in -the perldelta of a previous release. +Only test C<semctl> if we have everything needed to use it. In a FreeBSD +the C<semctl> entry point may exist, but it can be disabled by policy. +[perl #127533] =back -=head1 Obituary - -XXX If any significant core contributor has died, we've added a short obituary -here. - =head1 Acknowledgements XXX Generate this with: -- Perl5 Master Repository
