[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

Re: ld.so not ignoring LD_PRELOAD on seduid binaries?



Je 2001/05/23(3)/ 9:05, Brian Ristuccia montris sian geniecon skribante:
> On Wed, May 23, 2001 at 03:26:07PM +0200, joost witteveen wrote:
> > 
> > Now, I'm wondering if anyone knows why ld.so silently ignores
> > $LD_PRELOAD if it does contain a `/', while it fails to load the
> > program when $LD_PRELOAD doesn't contain a `/'.
> > 
> 
> Good question. Perhaps it is because when a library is specified with no
> path, ld.so will attempt to preload it for setuid/setgid binaries provided
> the library image in question has its setgid bit set.

Ah, I didn't know that. Yes, you may be right.

> With regard to bug #98467: Has the value of LD_PRELOAD set by the fakeroot
> shell script changed between the current version and past versions of
> fakeroot

Yes. It was changed in a NMU, for sparc64.
Before, LD_LIBRARY_PATH wasn't used.

>, and if so, is this the reason why setuid programs now fail to
> execute at all? Is there any compelling reason why the value of LD_PRELOAD
> set by fakeroot couldn't be reverted to the one containing a '/'?

Well, see last point in the changelog.Debian:

  * fakeroot: Use LD_LIBRARY_PATH for setting directory, and only
    LD_PRELOAD the library name. This makes it so the the 32/64 libs for
    sparc/sparc64 will load which ever one is needed.

I just tried setting 

LD_PRELOAD=libfakeroot/libfakeroot.so.0
LD_LIBRARY_PATH=/usr/lib

but then unfortunately libfakeroot.so.0 cannot be found by ld.so:(

Of cource, at the moment on any system but spark64 we can revert to
the old situation. But that'll fail as soon as i386 also needs special
stuff.

Thanks,
joostje



Reply to: