On Wed, Apr 11, 2012 at 05:04:04PM +0200, Horvath, Akos wrote:
> Hello,
> 
> Yes, it is true. But follow the code further. In the eval() is a read(), from 
> a file handle to a .ttf file.
> 
> It reads the first 12 bytes of a ttf font file, and then evaluates it as a 
> perl code block!

No it doesn't!

That's block eval, not string eval!

  eval {
    die "Boom";
  };
  warn $@;

Notice that the exception doesn't end the program but instead is put in $@.

That's what block eval does.

  eval 'print qq{Security hole!\n}';

is string eval, which would have the problem you describe.

That code is not using string eval, so does not have that problem.

-- 
Matt S Trout - Shadowcat Systems - Perl consulting with a commit bit and a clue

http://shadowcat.co.uk/blog/matt-s-trout/   http://twitter.com/shadowcat_mst/

Email me now on mst (at) shadowcat.co.uk and let's chat about how our Catalyst
commercial support, training and consultancy packages could help your team.

Reply via email to