On Thu, Aug 16, 2007 at 02:11:38PM -0700, Joshua ben Jore wrote: > On 8/16/07, Dominique Quatravaux <[EMAIL PROTECTED]> wrote: > > -----BEGIN PGP SIGNED MESSAGE----- > > Hash: SHA1 > > > > Joshua ben Jore wrote: > > > > > > caller() is a less-safe kind of operation because it now returns a > > > hash ref of the current lexical pragmas. I don't recall why this new > > > behavior warranted its removal from the default list of "safe" > > > opcodes. > > > > Maybe because if it returns *refs*, the evil guy could then alter what > > they point to? > > It isn't clear that modifying the reference does anything. The > reference is constructed in the moment that it is asked for. It can > contain only strings. I wouldn't swear that it is impossible to have a > change be reflected in the data stored in the optree but I suspect it > is unlikely.
The optree is read only. So the caller implementation has to respect this. However, for efficiency it is constructing a scalar which points to the bytes in the optree. So if anything ignores the readonly flag on the SV it will be changing the bytes in the optree. How "Safe" this is, I'm not sure. Nicholas Clark
