You are viewing the version of this documentation from Perl 5.22.2. View the latest version

CONTENTS

NAME

perldelta - what is new for perl v5.22.2

DESCRIPTION

This document describes differences between the 5.22.1 release and the 5.22.2 release.

If you are upgrading from an earlier release such as 5.22.0, first read perl5221delta, which describes differences between 5.22.0 and 5.22.1.

Security

Fix out of boundary access in Win32 path handling

This is CVE-2015-8608. For more information see [perl #126755].

Fix loss of taint in canonpath()

This is CVE-2015-8607. For more information see [perl #126862].

Set proper umask before calling mkstemp(3)

In 5.22.0 perl started setting umask to 0600 before calling 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.

Systems that use mode 0666 in mkstemp(3) (like old versions of glibc) create a file with permissions 0066, leaving world read and write permissions regardless of current umask.

This has been fixed by using umask 0177 instead.

[perl #127322]

Avoid accessing uninitialized memory in Win32 crypt()

Validation that will detect both a short salt and invalid characters in the salt has been added.

[perl #126922]

Remove duplicate environment variables from environ

Previously, if an environment variable appeared more than once in environ[], %ENV would contain the last entry for that name, while a typical getenv() would return the first entry. We now make sure %ENV contains the same as what getenv() returns.

Secondly, we now remove duplicates from environ[], so if a setting with that name is set in %ENV we won't pass an unsafe value to a child process.

This is CVE-2016-2381.

Incompatible Changes

There are no changes intentionally incompatible with Perl 5.22.1. If any exist, they are bugs, and we request that you submit a report. See "Reporting Bugs" below.

Modules and Pragmata

Updated Modules and Pragmata

Documentation

Changes to Existing Documentation

perldiag

perlfunc

Configuration and Compilation

Platform Support