Re: What I suspect

Pavel Machek (pavel@suse.cz)
Thu, 9 Dec 1999 00:08:15 +0100


Hi!

> What I was talking about is what happens if a program has a function
> called "mmap64()" and the library does NOT. Now the linker will decide
> that there are no clashes, and will not create any fixup code - and we'll
> use the prelinked libc.so without even checking anything. Right?
>
> Now, we upgrade libc to a new minor version. This minor version is also
> pre-linked, but it now has a weak symbol mmap64() because it is starting
> to use the new mmap capabilities. Now let us further assume that the
> library itself references that weak mmap64 symbol somewhere..
>
> Now, with the optimized pre-linking stuff, the old binary will NOT notice
> that we have clash, and the library reference will use the internal weak
> mmap64 instead of the object file strong mmap64. And my argument is that
> that is actually the correct behaviour (it's _different_ from what happens
> now as far as I can tell, but definitely not wrong).

Right. So if I do LD_PRELOAD=/lib/innocent.so program it will crash
but program will work because it has to do full relink in PRELOAD
case? That does not look like _correct_ behaviour. Maybe behaviour
that can be tolerated, but not correct.
Pavel

-- 
I'm really pavel@ucw.cz. Look at http://195.113.31.123/~pavel.  Pavel
Hi! I'm a .signature virus! Copy me into your ~/.signature, please!

- To unsubscribe from this list: send the line "unsubscribe linux-kernel" in the body of a message to majordomo@vger.rutgers.edu Please read the FAQ at http://www.tux.org/lkml/