|
| 1 | +=encoding utf8 |
| 2 | + |
| 3 | +=head1 NAME |
| 4 | + |
| 5 | +perl54111delta - what is new for perl v5.41.11 |
| 6 | + |
| 7 | +=head1 DESCRIPTION |
| 8 | + |
| 9 | +This document describes differences between the 5.41.10 release and the 5.41.11 |
| 10 | +release. |
| 11 | + |
| 12 | +If you are upgrading from an earlier release such as 5.41.9, first read |
| 13 | +L<perl54110delta>, which describes differences between 5.41.9 and 5.41.10. |
| 14 | + |
| 15 | +=head1 Core Enhancements |
| 16 | + |
| 17 | +=head2 Unicode 16.0 supported |
| 18 | + |
| 19 | +Perl now supports Unicode 16.0 |
| 20 | +L<https://www.unicode.org/versions/Unicode16.0.0/> including the changes |
| 21 | +introduced in 15.1 L<https://www.unicode.org/versions/Unicode15.1.0/>. |
| 22 | + |
| 23 | +=head1 Security |
| 24 | + |
| 25 | +=head2 [CVE-2024-56406] Heap buffer overflow vulnerability with tr// |
| 26 | + |
| 27 | +A heap buffer overflow vulnerability was discovered in Perl. |
| 28 | + |
| 29 | +When there are non-ASCII bytes in the left-hand-side of the C<tr> operator, |
| 30 | +C<S_do_trans_invmap()> can overflow the destination pointer C<d>. |
| 31 | + |
| 32 | + $ perl -e '$_ = "\x{FF}" x 1000000; tr/\xFF/\x{100}/;' |
| 33 | + Segmentation fault (core dumped) |
| 34 | + |
| 35 | +It is believed that this vulnerability can enable Denial of Service or |
| 36 | +Arbitrary Code Execution attacks on platforms that lack sufficient defenses. |
| 37 | + |
| 38 | +Discovered by: Nathan Mills. |
| 39 | + |
| 40 | +=head1 Modules and Pragmata |
| 41 | + |
| 42 | +=head2 Updated Modules and Pragmata |
| 43 | + |
| 44 | +=over 4 |
| 45 | + |
| 46 | +=item * |
| 47 | + |
| 48 | +L<Data::Dumper> has been upgraded from version 2.191 to 2.192. |
| 49 | + |
| 50 | +=item * |
| 51 | + |
| 52 | +L<ExtUtils::MakeMaker> has been upgraded from version 7.72 to 7.74. |
| 53 | + |
| 54 | +=item * |
| 55 | + |
| 56 | +L<Fcntl> has been upgraded from version 1.19 to 1.20. |
| 57 | + |
| 58 | +=item * |
| 59 | + |
| 60 | +L<File::Spec> has been upgraded from version 3.92 to 3.94. |
| 61 | + |
| 62 | +=item * |
| 63 | + |
| 64 | +L<Math::BigInt> has been upgraded from version 2.004001 to 2.005002. |
| 65 | + |
| 66 | +=item * |
| 67 | + |
| 68 | +L<Math::BigInt::FastCalc> has been upgraded from version 0.5019 to 0.5020. |
| 69 | + |
| 70 | +=item * |
| 71 | + |
| 72 | +L<Module::CoreList> has been upgraded from version 5.20250321 to 5.20250420. |
| 73 | + |
| 74 | +=item * |
| 75 | + |
| 76 | +L<Pod::Usage> has been upgraded from version 2.03 to 2.05. |
| 77 | + |
| 78 | +=item * |
| 79 | + |
| 80 | +L<Storable> has been upgraded from version 3.36 to 3.37. |
| 81 | + |
| 82 | +=item * |
| 83 | + |
| 84 | +L<Test::Simple> has been upgraded from version 1.302209 to 1.302210. |
| 85 | + |
| 86 | +=item * |
| 87 | + |
| 88 | +L<Time::HiRes> has been upgraded from version 1.9777 to 1.9778. |
| 89 | + |
| 90 | +=item * |
| 91 | + |
| 92 | +L<Time::Piece> has been upgraded from version 1.35 to 1.36. |
| 93 | + |
| 94 | +=item * |
| 95 | + |
| 96 | +L<Unicode::UCD> has been upgraded from version 0.79 to 0.80. |
| 97 | + |
| 98 | +=item * |
| 99 | + |
| 100 | +L<XS::APItest> has been upgraded from version 1.41 to 1.42. |
| 101 | + |
| 102 | +This fixes [L<GH #16654|https://github.com/Perl/perl5/issues/16654>]. |
| 103 | + |
| 104 | +=back |
| 105 | + |
| 106 | +=head1 Documentation |
| 107 | + |
| 108 | +=head2 perlop |
| 109 | + |
| 110 | +=over 4 |
| 111 | + |
| 112 | +=item * |
| 113 | + |
| 114 | +Normalized alignment of verbatim sections, fixing how they are displayed by |
| 115 | +some Pod viewers that strip indentation. |
| 116 | + |
| 117 | +=back |
| 118 | + |
| 119 | +=head2 Changes to Existing Documentation |
| 120 | + |
| 121 | +We have attempted to update the documentation to reflect the changes |
| 122 | +listed in this document. If you find any we have missed, open an issue |
| 123 | +at L<https://github.com/Perl/perl5/issues>. |
| 124 | + |
| 125 | +Additionally, the following selected changes have been made: |
| 126 | + |
| 127 | +=head3 L<perlguts> |
| 128 | + |
| 129 | +=over 4 |
| 130 | + |
| 131 | +=item * |
| 132 | + |
| 133 | +Additional caveats have been added to the description of C<TARG>. |
| 134 | + |
| 135 | +=back |
| 136 | + |
| 137 | +=head2 Platform-Specific Notes |
| 138 | + |
| 139 | +=over 4 |
| 140 | + |
| 141 | +=item MacOS (Darwin) |
| 142 | + |
| 143 | +Collation of strings using locales on MacOS 15 (Darwin 24) and up has |
| 144 | +been turned off due to a failed assertion in its libc. |
| 145 | + |
| 146 | +=back |
| 147 | + |
| 148 | +=head1 Selected Bug Fixes |
| 149 | + |
| 150 | +=over 4 |
| 151 | + |
| 152 | +=item * |
| 153 | + |
| 154 | +In some cases an C<eval> would not add integer parts to the source |
| 155 | +lines saved by the debugger. [L<GH #23151|https://github.com/Perl/perl5/issues/23151>] |
| 156 | + |
| 157 | +=item * |
| 158 | + |
| 159 | +Save debugger lines as C<PVIV> SVs rather than as C<PVMG> SVs as they |
| 160 | +don't need magic, aren't blessed and don't need to store a floating |
| 161 | +point part. This should save 24 bytes per stored line for 64-bit |
| 162 | +systems, more for C<-Duselongdouble> or C<-Dusequadmath> builds. |
| 163 | +Discussed in [L<GH #23171|https://github.com/Perl/perl5/issues/23171>]. |
| 164 | + |
| 165 | +=item * |
| 166 | + |
| 167 | +Ensure cloning the save stack for fork emulation doesn't duplicate |
| 168 | +freeing the RExC state. [L<GH #23022|https://github.com/Perl/perl5/issues/23022>] |
| 169 | + |
| 170 | +=item * |
| 171 | + |
| 172 | +Smartmatch against a code reference that uses a loop exit such as |
| 173 | +C<last> would crash perl. [L<GH #16608|https://github.com/Perl/perl5/issues/16608>] |
| 174 | + |
| 175 | +=item * |
| 176 | + |
| 177 | +Class initializers and C<ADJUST> blocks, per L<perlclass>, that |
| 178 | +called C<last> or other loop exits would crash perl. Same cause as |
| 179 | +for [L<GH #16608|https://github.com/Perl/perl5/issues/16608>]. |
| 180 | + |
| 181 | +=item * |
| 182 | + |
| 183 | +Prevent a signature parameter of the form C<$ => from leaking an OP at |
| 184 | +compile-time. [L<GH #23187|https://github.com/Perl/perl5/issues/23187>] |
| 185 | + |
| 186 | +=back |
| 187 | + |
| 188 | +=head1 Acknowledgements |
| 189 | + |
| 190 | +Perl 5.41.11 represents approximately 4 weeks of development since Perl |
| 191 | +5.41.10 and contains approximately 250,000 lines of changes across 460 files |
| 192 | +from 22 authors. |
| 193 | + |
| 194 | +Excluding auto-generated files, documentation and release tools, there were |
| 195 | +approximately 39,000 lines of changes to 320 .pm, .t, .c and .h files. |
| 196 | + |
| 197 | +Perl continues to flourish into its fourth decade thanks to a vibrant |
| 198 | +community of users and developers. The following people are known to have |
| 199 | +contributed the improvements that became Perl 5.41.11: |
| 200 | + |
| 201 | +Chad Granum, Chris 'BinGOs' Williams, Dan Book, Daniel Dragan, Graham Knop, |
| 202 | +James E Keenan, Karen Etheridge, Karl Williamson, Leon Timmermans, Lukas |
| 203 | +Mai, Marek Rouchal, Paul Evans, Peter Eisentraut, Peter John Acklam, |
| 204 | +Philippe Bruhat (BooK), Richard Leach, Steve Hay, TAKAI Kousuke, Thibault |
| 205 | +Duponchelle, Tony Cook, Unicode Consortium, Vladimír Marek. |
| 206 | + |
| 207 | +The list above is almost certainly incomplete as it is automatically |
| 208 | +generated from version control history. In particular, it does not include |
| 209 | +the names of the (very much appreciated) contributors who reported issues to |
| 210 | +the Perl bug tracker. |
| 211 | + |
| 212 | +Many of the changes included in this version originated in the CPAN modules |
| 213 | +included in Perl's core. We're grateful to the entire CPAN community for |
| 214 | +helping Perl to flourish. |
| 215 | + |
| 216 | +For a more complete list of all of Perl's historical contributors, please |
| 217 | +see the F<AUTHORS> file in the Perl source distribution. |
| 218 | + |
| 219 | +=head1 Reporting Bugs |
| 220 | + |
| 221 | +If you find what you think is a bug, you might check the perl bug database |
| 222 | +at L<https://github.com/Perl/perl5/issues>. There may also be information at |
| 223 | +L<https://www.perl.org/>, the Perl Home Page. |
| 224 | + |
| 225 | +If you believe you have an unreported bug, please open an issue at |
| 226 | +L<https://github.com/Perl/perl5/issues>. Be sure to trim your bug down to a |
| 227 | +tiny but sufficient test case. |
| 228 | + |
| 229 | +If the bug you are reporting has security implications which make it |
| 230 | +inappropriate to send to a public issue tracker, then see |
| 231 | +L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION> |
| 232 | +for details of how to report the issue. |
| 233 | + |
| 234 | +=head1 Give Thanks |
| 235 | + |
| 236 | +If you wish to thank the Perl 5 Porters for the work we had done in Perl 5, |
| 237 | +you can do so by running the C<perlthanks> program: |
| 238 | + |
| 239 | + perlthanks |
| 240 | + |
| 241 | +This will send an email to the Perl 5 Porters list with your show of thanks. |
| 242 | + |
| 243 | +=head1 SEE ALSO |
| 244 | + |
| 245 | +The F<Changes> file for an explanation of how to view exhaustive details on |
| 246 | +what changed. |
| 247 | + |
| 248 | +The F<INSTALL> file for how to build Perl. |
| 249 | + |
| 250 | +The F<README> file for general stuff. |
| 251 | + |
| 252 | +The F<Artistic> and F<Copying> files for copyright information. |
| 253 | + |
| 254 | +=cut |
0 commit comments