perl 5.003_06: sv.h
authorPerl 5 Porters <perl5-porters@africa.nicoh.com>
Fri, 20 Sep 1996 19:38:57 +0000 (15:38 -0400)
committerAndy Dougherty <doughera@lafcol.lafayette.edu>
Fri, 20 Sep 1996 19:38:57 +0000 (15:38 -0400)
commit51594c39ec0a5df8dda24c63498418e94d9787e1
tree14fe92d4f3a3d5c9c31884e0f49e76afd5552c71
parent16660edb8096eecedc92b4cfa57f100a175c7962
perl 5.003_06: sv.h

Date: Thu, 19 Sep 1996 11:58:22 -0400
From: "Randy J. Ray" <rjray@uswest.com>
Subject: Patch: Untaint FH flag and clean DATA handles

This patch adds a IOf_UNTAINT flag in sv.h, as one of the possibles
on an xpvio->xio_flags struct member. It is used to mark the given
file handle as a clean source, even when tainting is turned on.
There are also patches to pp_sys.c in pp_sysread to check this flag
before tainting data, and in pp_hot.c in do_readline for the same
reason. Lastly, it patches toke.c to automatically set this flag on
on a __DATA__ filehandle. The creation of the $pack::DATA
pseudo-filehandle is already checked against running under eval, so
this should not introduce any insecurity.

This patch *does not*:

* Add the "untaint" keyword.

Date: Fri, 20 Sep 1996 15:38:57 -0400
From: Gurusamy Sarathy <gsar@engin.umich.edu>
Subject: Re: "Attempt to free non-existent shared string"? (with patch)

I found a subtle problem with the lazydelete mechanism (which is used
to postpone the delete of a entry that may be getting iterated over).
I was using the HeKLEN slot to hold the hint, but the real HeKLEN is
needed later to call unsharepvn().  This means that only magical
hash entries can use the HeKLEN slot to hold flags.

Here's a tested patch against 5.00305 that fixes the problem.
The patch simply moves the LAZYDEL hint to become a SV-level private
flag.
sv.h