source: trunk/essentials/dev-lang/perl/pod/perl570delta.pod@ 3439

Last change on this file since 3439 was 3181, checked in by bird, 19 years ago

perl 5.8.8

File size: 21.1 KB
Line 
1=head1 NAME
2
3perl570delta - what's new for perl v5.7.0
4
5=head1 DESCRIPTION
6
7This document describes differences between the 5.6.0 release and
8the 5.7.0 release.
9
10=head1 Security Vulnerability Closed
11
12A potential security vulnerability in the optional suidperl component
13of Perl has been identified. suidperl is neither built nor installed
14by default. As of September the 2nd, 2000, the only known vulnerable
15platform is Linux, most likely all Linux distributions. CERT and
16various vendors have been alerted about the vulnerability.
17
18The problem was caused by Perl trying to report a suspected security
19exploit attempt using an external program, /bin/mail. On Linux
20platforms the /bin/mail program had an undocumented feature which
21when combined with suidperl gave access to a root shell, resulting in
22a serious compromise instead of reporting the exploit attempt. If you
23don't have /bin/mail, or if you have 'safe setuid scripts', or if
24suidperl is not installed, you are safe.
25
26The exploit attempt reporting feature has been completely removed from
27the Perl 5.7.0 release, so that particular vulnerability isn't there
28anymore. However, further security vulnerabilities are,
29unfortunately, always possible. The suidperl code is being reviewed
30and if deemed too risky to continue to be supported, it may be
31completely removed from future releases. In any case, suidperl should
32only be used by security experts who know exactly what they are doing
33and why they are using suidperl instead of some other solution such as
34sudo ( see http://www.courtesan.com/sudo/ ).
35
36=head1 Incompatible Changes
37
38=over 4
39
40=item *
41
42Arrays now always interpolate into double-quoted strings:
43constructs like "foo@bar" now always assume C<@bar> is an array,
44whether or not the compiler has seen use of C<@bar>.
45
46=item *
47
48The semantics of bless(REF, REF) were unclear and until someone proves
49it to make some sense, it is forbidden.
50
51=item *
52
53A reference to a reference now stringify as "REF(0x81485ec)" instead
54of "SCALAR(0x81485ec)" in order to be more consistent with the return
55value of ref().
56
57=item *
58
59The very dusty examples in the eg/ directory have been removed.
60Suggestions for new shiny examples welcome but the main issue is that
61the examples need to be documented, tested and (most importantly)
62maintained.
63
64=item *
65
66The obsolete chat2 library that should never have been allowed
67to escape the laboratory has been decommissioned.
68
69=item *
70
71The unimplemented POSIX regex features [[.cc.]] and [[=c=]] are still
72recognised but now cause fatal errors. The previous behaviour of
73ignoring them by default and warning if requested was unacceptable
74since it, in a way, falsely promised that the features could be used.
75
76=item *
77
78The (bogus) escape sequences \8 and \9 now give an optional warning
79("Unrecognized escape passed through"). There is no need to \-escape
80any C<\w> character.
81
82=item *
83
84lstat(FILEHANDLE) now gives a warning because the operation makes no sense.
85In future releases this may become a fatal error.
86
87=item *
88
89The long deprecated uppercase aliases for the string comparison
90operators (EQ, NE, LT, LE, GE, GT) have now been removed.
91
92=item *
93
94The regular expression captured submatches ($1, $2, ...) are now
95more consistently unset if the match fails, instead of leaving false
96data lying around in them.
97
98=item *
99
100The tr///C and tr///U features have been removed and will not return;
101the interface was a mistake. Sorry about that. For similar
102functionality, see pack('U0', ...) and pack('C0', ...).
103
104=back
105
106=head1 Core Enhancements
107
108=over 4
109
110=item *
111
112C<perl -d:Module=arg,arg,arg> now works (previously one couldn't pass