Re: export LD_LIBRARY_PATH in /etc/profile.d/* files

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

 



On Tue, Dec 17, 2002 at 06:51:00PM +0000, rich@annexia.org wrote:
> On a machine I administrate I recently discovered an entry in
> /etc/profile.d/oracle.sh:
> 
> export LD_LIBRARY_PATH=$LD_LIBRARY_PATH:/home/oracle/OraHome1/lib
> 
> I noticed today that this leaves the value of LD_LIBRARY_PATH as:
> 
> :/home/oracle/OraHome1/lib
 
[ ... ]


> If the desired effect is really to have shared libraries loaded from
> whatever the current directory is, then the administrator should add
> the single dot . to LD_LIBRARY_PATH.

But isn't a . in LD_LIBRARY_PATH the same as an empty entry.
Or anyway, just as insecure?

What the original script should do is append to LD_LIBRARY_PATH
only if it is already defined.  It's quite a common mistake I fear.

Scripts should do:
LD_LIBRARY_PATH=${LD_LIBRARY_PATH:+${LD_LIBRARY_PATH}:}$ORACLE_HOME/lib

Which is the same as

if [ -n "$LD_LIBRARY_PATH" ]
then
	LD_LIBRARY_PATH=${LD_LIBRARY_PATH}:$ORACLE_HOME/lib
else
	LD_LIBRARY_PATH=$ORACLE_HOME/lib
fi

Even Oracle's own oraenv script gets it wrong, but at least it
leaves the empty entry at the end.

Matt




[Index of Archives]     [Linux Security]     [Netfilter]     [PHP]     [Yosemite News]     [Linux Kernel]

  Powered by Linux