mark at mark.mielke.cc
Mon Sep 14 20:23:48 UTC 2009
On 09/14/2009 03:09 PM, Anand Avati wrote:
>> It's not perfect - but at least any calls that fall through will still be
>> handled properly. For example, if an application calls fopen(), which is not
>> on the GlusterFS list of overridden system calls the last time I checked,
>> then at least the fopen() will be intercepted by FUSE rather than fail
> I think the deal with hidden PLTs is that fopen() cannot be trapped by
> an alternate implementation of fopen() inside the LD_PRELOADed
> library. But the system call open performed inside the libc's fopen()
> (no matter how it was compiled) should get intercepted by the
> LD_PRELOAD library. Because I dont think the PLT optimizations would
> apply to system calls.
It's the opposite of this. fopen() can be overridden, but open() called
by fopen() cannot, because fopen() calls an internal linkage table to
find open() - it does not look back up through dlsym() to find your
override of open().
You could override fopen() - but this becomes complicated, because this
means overriding all of STDIO. Bleh.
Mark Mielke<mark at mielke.cc>
More information about the Gluster-users