Re: LD_PRELOAD problem
- From: "LS Cheng" <exriscer@xxxxxxxxx>
- To: "Tanel Poder" <tanel.poder.003@xxxxxxx>
- Date: Fri, 1 Sep 2006 08:23:41 +0200
I have run nm against the file and it gives an output of 12699 lines with this structure:
Symbols from libavanzasiebel.sl:
Name Value Scope Type Subspace
$$divI_10 | 464420|extern|milli |$MILLICODE$ $$divI_12 | 464508|extern|milli |$MILLICODE$ $$divI_14 | 464944|extern|milli |$MILLICODE$ $$divI_15 | 464564|extern|milli |$MILLICODE$ $$divI_16 | 464128|extern|milli |$MILLICODE$
I guess name is the function name? How can I check what function is being highjacked?
I ran nm against sqlplus and it shows this:
Symbols from /home/oracle/app/oracle/product/9.2.0/bin/sqlplus:
[Index] Value Size Type Bind O Shndx Name
 | 0| 0|NOTYP|LOCAL|0| UNDEF|  | 4611686018440130704| 0|MILLI|GLOB |0| .text|$$div2I  | 4611686018440131056| 0|MILLI|GLOB |0| .text|$$div2U
Probably the best thing is compare the name of both outputs?
On 8/31/06, Tanel Poder <tanel.poder.003@xxxxxxx> wrote:
LD_PRELOAD allows you to hijack dynamicly loaded library functions. If sqlplus calls function X, then if this function X is exported from your /sbl/xxx.sl then this function X is called from /sbl/xxx.sl even if it exists in some other dll against which the executable is linked (like libclntsh* libraries).
Run: nm /sbl/xxx.sl to see which functions may be hijacked there, this could give some more indication what's going on.
And of course, the library's word-size has to match word-size of the executable. If the word sizes are different, you have to recompile the library.
------------------------------ *From:* oracle-l-bounce@xxxxxxxxxxxxx [mailto: oracle-l-bounce@xxxxxxxxxxxxx] *On Behalf Of *LS Cheng *Sent:* Thursday, August 31, 2006 04:45
*To:* Jesse, Rich *Cc:* oracle-l *Subject:* Re: LD_PRELOAD problem
However when I unset LD_PRELOAD sqlplus works but of course the application specific program fails.