On Wed, Sep 25, 2013 at 7:36 PM, Tim Hoke <th...@northpeak.org> wrote:

> Why does this happen and how can I prevent it?
>
> To see the results, here is how to reproduce it (on Linux):
>
> $ strace -o hello.strace ./hello
>
> Here's the stat() calls which happened for my example:
>
> stat("/home/user/perl5/perlbrew/perls/perl-5.16.1/lib/5.16.1/auto/attributes",
> 0x7586c0) = -1 ENOENT (No such file or directory)
> stat("/home/user/perl5/perlbrew/perls/perl-5.16.1/lib/5.16.1/auto/Compress/Raw/Zlib",
> 0x7586c0) = -1 ENOENT (No such file or directory)
>

I can reproduce this and agree that a packed executable should not (try to)
access stuff
outside it's cache directory. However, looks like no harm is done here as
almost all probes
are for non-existent paths.

Judging from the pattern of the probed paths my guess is that these come
from within
DynaLoader (and not from PAR or PAR::Packer). If that's the case, there's
nothing you can do
to prevent this.
Maybe PAR::Packer could "convince" DynaLoader to change its behaviour (we
already
mangle the copy of DynaLoader.pm that is packed into the ecutable), but I
wouldn't
hold my breath...

Cheers, Roderich

Reply via email to