cgi a sdilene knihovny

Míla Kuchta mila.kuchta na atlas.cz
Pátek Únor 25 01:59:32 CET 2000


peak na argo.troja.mff.cuni.cz (Pavel Kankovsky) wrote:
> On Thu, 24 Feb 2000, Míla Kuchta wrote:
> 
> > > > > Jeste bych dodal, ze program je dynamicky slinkovany. Pokud se ho pokusim
> > > > > slinkovat staticky tak si vzdy nejaka funkce z knihoven stezuje:
> > > > > 
> > > > > undefined reference to `_IO_stderr_'
> > > > > undefined reference to `_IO_stdout_'
> 
> To je zajimave. Nepomuze explicitni -lc?
> 
> > > Jde o jednoduchy databazovy program pro select v sybase. V logu apache je:
> > > pokus.cgi: error in loading shared libraries: /opt/sybase/lib/libct.so:
> > > undefined symbol: net_opt_alloc [Thu Feb 24 18:30:09 2000] [error] [client
> > > 192.168.1.100] Premature end of script headers: /home/httpd/cgi-bin/pokus.cgi  
> 
> Je zajimave, ze to prekladac vubec slinkuje. Napada mne moznost, ze se
> loaduje jina knihovna, nez je pouzita pro linkovani.
> 
> > Neni mozny, ze by Apache pouzival chroot treba jako anoftp a pak
> > se na ty knihovny nedostal.
> 
> Spis ne. Kdyz se pokusite spustit mimo Apache (nebo aspon na nej dat ldd),
> tak to funguje?

Tak uz jsem se zase dostal o kousek dal. Nejde to proto ze apache to spousti
jako root a ja to mino nej spoustel jako user. Ale proc to nechce spustit pod
rootem, kdyz nepouzivam zadne lokalni nastaveni, vsechno na globalni urovni v
/etc z toho jsem blbej. 

./pokus.cgi: error in loading shared libraries: /opt/sybase/lib/libct.so:
undefined symbol: net_ opt_alloc

ldd pokus.cgi
        libct.so => /opt/sybase/lib/libct.so (0x40016000)
        libcs.so => /opt/sybase/lib/libcs.so (0x40060000)
        libcomn.so => /opt/sybase/lib/libcomn.so (0x4006b000)
        libtcl.so => /usr/lib/libtcl.so (0x400aa000)
        libinsck.so => /opt/sybase/lib/libinsck.so (0x4010e000)
        libintl.so => /opt/sybase/lib/libintl.so (0x40111000)
        libstdc++-libc6.1-1.so.2 => /usr/lib/libstdc++-libc6.1-1.so.2 (0x40119000)
        libm.so.6 => /lib/libm.so.6 (0x4015c000)
        libc.so.6 => /lib/libc.so.6 (0x40178000)
        libdl.so.2 => /lib/libdl.so.2 (0x4026b000)
        /lib/ld-linux.so.2 => /lib/ld-linux.so.2 (0x40000000)   

Mila Kuchta


Další informace o konferenci Linux