Commit | Line | Data |
---|---|---|
fb51aa58 SH |
1 | =encoding utf8 |
2 | ||
3 | =head1 NAME | |
4 | ||
5 | perl5262delta - what is new for perl v5.26.2 | |
6 | ||
7 | =head1 DESCRIPTION | |
8 | ||
9 | This document describes differences between the 5.26.1 release and the 5.26.2 | |
10 | release. | |
11 | ||
12 | If you are upgrading from an earlier release such as 5.26.0, first read | |
13 | L<perl5261delta>, which describes differences between 5.26.0 and 5.26.1. | |
14 | ||
15 | =head1 Security | |
16 | ||
17 | =head2 [CVE-2018-6797] heap-buffer-overflow (WRITE of size 1) in S_regatom (regcomp.c) | |
18 | ||
19 | A crafted regular expression could cause a heap buffer write overflow, with | |
20 | control over the bytes written. | |
21 | L<[perl #132227]|https://rt.perl.org/Public/Bug/Display.html?id=132227> | |
22 | ||
23 | =head2 [CVE-2018-6798] Heap-buffer-overflow in Perl__byte_dump_string (utf8.c) | |
24 | ||
25 | Matching a crafted locale dependent regular expression could cause a heap | |
26 | buffer read overflow and potentially information disclosure. | |
27 | L<[perl #132063]|https://rt.perl.org/Public/Bug/Display.html?id=132063> | |
28 | ||
29 | =head2 [CVE-2018-6913] heap-buffer-overflow in S_pack_rec | |
30 | ||
31 | C<pack()> could cause a heap buffer write overflow with a large item count. | |
32 | L<[perl #131844]|https://rt.perl.org/Public/Bug/Display.html?id=131844> | |
33 | ||
34 | =head2 Assertion failure in Perl__core_swash_init (utf8.c) | |
35 | ||
36 | Control characters in a supposed Unicode property name could cause perl to | |
37 | crash. This has been fixed. | |
38 | L<[perl #132055]|https://rt.perl.org/Public/Bug/Display.html?id=132055> | |
39 | L<[perl #132553]|https://rt.perl.org/Public/Bug/Display.html?id=132553> | |
40 | L<[perl #132658]|https://rt.perl.org/Public/Bug/Display.html?id=132658> | |
41 | ||
42 | =head1 Incompatible Changes | |
43 | ||
44 | There are no changes intentionally incompatible with 5.26.1. If any exist, | |
45 | they are bugs, and we request that you submit a report. See L</Reporting | |
46 | Bugs> below. | |
47 | ||
48 | =head1 Modules and Pragmata | |
49 | ||
50 | =head2 Updated Modules and Pragmata | |
51 | ||
52 | =over 4 | |
53 | ||
54 | =item * | |
55 | ||
56 | L<Module::CoreList> has been upgraded from version 5.20170922_26 to 5.20180414_26. | |
57 | ||
58 | =item * | |
59 | ||
60 | L<PerlIO::via> has been upgraded from version 0.16 to 0.17. | |
61 | ||
62 | =item * | |
63 | ||
64 | L<Term::ReadLine> has been upgraded from version 1.16 to 1.17. | |
65 | ||
66 | =item * | |
67 | ||
68 | L<Unicode::UCD> has been upgraded from version 0.68 to 0.69. | |
69 | ||
70 | =back | |
71 | ||
72 | =head1 Documentation | |
73 | ||
74 | =head2 Changes to Existing Documentation | |
75 | ||
76 | =head3 L<perluniprops> | |
77 | ||
78 | =over 4 | |
79 | ||
80 | =item * | |
81 | ||
82 | This has been updated to note that C<\p{Word}> now includes code points | |
83 | matching the C<\p{Join_Control}> property. The change to the property was made | |
84 | in Perl 5.18, but not documented until now. There are currently only two code | |
85 | points that match this property: U+200C (ZERO WIDTH NON-JOINER) and U+200D | |
86 | (ZERO WIDTH JOINER). | |
87 | ||
88 | =back | |
89 | ||
90 | =head1 Platform Support | |
91 | ||
92 | =head2 Platform-Specific Notes | |
93 | ||
94 | =over 4 | |
95 | ||
96 | =item Windows | |
97 | ||
98 | Visual C++ compiler version detection has been improved to work on non-English | |
99 | language systems. | |
100 | L<[perl #132421]|https://rt.perl.org/Public/Bug/Display.html?id=132421> | |
101 | ||
102 | We now set C<$Config{libpth}> correctly for 64-bit builds using Visual C++ | |
103 | versions earlier than 14.1. | |
104 | L<[perl #132484]|https://rt.perl.org/Public/Bug/Display.html?id=132484> | |
105 | ||
106 | =back | |
107 | ||
108 | =head1 Selected Bug Fixes | |
109 | ||
110 | =over 4 | |
111 | ||
112 | =item * | |
113 | ||
114 | The C<readpipe()> built-in function now checks at compile time that it has only | |
115 | one parameter expression, and puts it in scalar context, thus ensuring that it | |
116 | doesn't corrupt the stack at runtime. | |
117 | L<[perl #4574]|https://rt.perl.org/Public/Bug/Display.html?id=4574> | |
118 | ||
119 | =item * | |
120 | ||
121 | Fixed a use after free bug in C<pp_list> introduced in Perl 5.27.1. | |
122 | L<[perl #131954]|https://rt.perl.org/Public/Bug/Display.html?id=131954> | |
123 | ||
124 | =item * | |
125 | ||
126 | Parsing a C<sub> definition could cause a use after free if the C<sub> keyword | |
127 | was followed by whitespace including newlines (and comments). | |
128 | L<[perl #131836]|https://rt.perl.org/Public/Bug/Display.html?id=131836> | |
129 | ||
130 | =item * | |
131 | ||
132 | The tokenizer now correctly adjusts a parse pointer when skipping whitespace in | |
133 | an C< ${identifier} > construct. | |
134 | L<[perl #131949]|https://rt.perl.org/Public/Bug/Display.html?id=131949> | |
135 | ||
136 | =item * | |
137 | ||
138 | Accesses to C<${^LAST_FH}> no longer assert after using any of a variety of I/O | |
139 | operations on a non-glob. | |
140 | L<[perl #128263]|https://rt.perl.org/Public/Bug/Display.html?id=128263> | |
141 | ||
142 | =item * | |
143 | ||
144 | C<sort> now performs correct reference counting when aliasing C<$a> and C<$b>, | |
145 | thus avoiding premature destruction and leakage of scalars if they are | |
146 | re-aliased during execution of the sort comparator. | |
147 | L<[perl #92264]|https://rt.perl.org/Public/Bug/Display.html?id=92264> | |
148 | ||
149 | =item * | |
150 | ||
151 | Some convoluted kinds of regexp no longer cause an arithmetic overflow when | |
152 | compiled. | |
153 | L<[perl #131893]|https://rt.perl.org/Public/Bug/Display.html?id=131893> | |
154 | ||
155 | =item * | |
156 | ||
157 | Fixed a duplicate symbol failure with B<-flto -mieee-fp> builds. F<pp.c> | |
158 | defined C<_LIB_VERSION> which B<-lieee> already defines. | |
159 | L<[perl #131786]|https://rt.perl.org/Public/Bug/Display.html?id=131786> | |
160 | ||
161 | =item * | |
162 | ||
163 | A NULL pointer dereference in the C<S_regmatch()> function has been fixed. | |
164 | L<[perl #132017]|https://rt.perl.org/Public/Bug/Display.html?id=132017> | |
165 | ||
166 | =item * | |
167 | ||
168 | Failures while compiling code within other constructs, such as with string | |
169 | interpolation and the right part of C<s///e> now cause compilation to abort | |
170 | earlier. | |
171 | ||
172 | Previously compilation could continue in order to report other errors, but the | |
173 | failed sub-parse could leave partly parsed constructs on the parser | |
174 | shift-reduce stack, confusing the parser, leading to perl crashes. | |
175 | L<[perl #125351]|https://rt.perl.org/Public/Bug/Display.html?id=125351> | |
176 | ||
177 | =back | |
178 | ||
179 | =head1 Acknowledgements | |
180 | ||
181 | Perl 5.26.2 represents approximately 7 months of development since Perl 5.26.1 | |
182 | and contains approximately 3,300 lines of changes across 82 files from 17 | |
183 | authors. | |
184 | ||
185 | Excluding auto-generated files, documentation and release tools, there were | |
186 | approximately 1,800 lines of changes to 36 .pm, .t, .c and .h files. | |
187 | ||
188 | Perl continues to flourish into its third decade thanks to a vibrant community | |
189 | of users and developers. The following people are known to have contributed | |
190 | the improvements that became Perl 5.26.2: | |
191 | ||
192 | Aaron Crane, Abigail, Chris 'BinGOs' Williams, H.Merijn Brand, James E Keenan, | |
193 | Jarkko Hietaniemi, John SJ Anderson, Karen Etheridge, Karl Williamson, Lukas | |
194 | Mai, Renee Baecker, Sawyer X, Steve Hay, Todd Rinaldo, Tony Cook, Yves Orton, | |
195 | Zefram. | |
196 | ||
197 | The list above is almost certainly incomplete as it is automatically generated | |
198 | from version control history. In particular, it does not include the names of | |
199 | the (very much appreciated) contributors who reported issues to the Perl bug | |
200 | tracker. | |
201 | ||
202 | Many of the changes included in this version originated in the CPAN modules | |
203 | included in Perl's core. We're grateful to the entire CPAN community for | |
204 | helping Perl to flourish. | |
205 | ||
206 | For a more complete list of all of Perl's historical contributors, please see | |
207 | the F<AUTHORS> file in the Perl source distribution. | |
208 | ||
209 | =head1 Reporting Bugs | |
210 | ||
211 | If you find what you think is a bug, you might check the perl bug database | |
212 | at L<https://rt.perl.org/> . There may also be information at | |
213 | L<http://www.perl.org/> , the Perl Home Page. | |
214 | ||
215 | If you believe you have an unreported bug, please run the L<perlbug> program | |
216 | included with your release. Be sure to trim your bug down to a tiny but | |
217 | sufficient test case. Your bug report, along with the output of C<perl -V>, | |
218 | will be sent off to perlbug@perl.org to be analysed by the Perl porting team. | |
219 | ||
220 | If the bug you are reporting has security implications which make it | |
221 | inappropriate to send to a publicly archived mailing list, then see | |
222 | L<perlsec/SECURITY VULNERABILITY CONTACT INFORMATION> | |
223 | for details of how to report the issue. | |
224 | ||
225 | =head1 Give Thanks | |
226 | ||
227 | If you wish to thank the Perl 5 Porters for the work we had done in Perl 5, | |
228 | you can do so by running the C<perlthanks> program: | |
229 | ||
230 | perlthanks | |
231 | ||
232 | This will send an email to the Perl 5 Porters list with your show of thanks. | |
233 | ||
234 | =head1 SEE ALSO | |
235 | ||
236 | The F<Changes> file for an explanation of how to view exhaustive details on | |
237 | what changed. | |
238 | ||
239 | The F<INSTALL> file for how to build Perl. | |
240 | ||
241 | The F<README> file for general stuff. | |
242 | ||
243 | The F<Artistic> and F<Copying> files for copyright information. | |
244 | ||
245 | =cut |