This is a live mirror of the Perl 5 development currently hosted at https://github.com/perl/perl5
perl.c: Don't read possibly zapped memory
authorKarl Williamson <khw@cpan.org>
Mon, 9 Mar 2015 17:14:19 +0000 (11:14 -0600)
committerKarl Williamson <khw@cpan.org>
Mon, 9 Mar 2015 19:53:03 +0000 (13:53 -0600)
commit9e0b0d62ba5a660ab4b6f498912cfaead79014a0
treea45bc21b4760a2e0316ceabc2bcc33c8819c08d7
parent2cc6a9db5a91276f3ff662b3e5befa6799fde3ed
perl.c: Don't read possibly zapped memory

See https://rt.perl.org/Ticket/Display.html?id=123748

The return of getenv() is a pointer to static storage which can legally
be overwritten at any time by other calls to access the environment,
even even another getenv().  (What actually happens varies from platform
to platform.)  Results of getenv() therefore either have to be acted on
immediately or copied to a safe area.  This commit does the latter for
this call in perl.c.  The static area was being held on to even into the
function call moreswitches() which does environmen handling, so was
vulnerable to this bug.
perl.c