I was reading through the init scripts functions file and
noticed some very minor speedups, a bug fix, and some
relatively obscure security holes - possibly they should go
back to the mantainers, but I think they may be Mandrake-specific.
Speeding up these scripts seems desireable... the security stuff is to
do with unquoted shell variables - probably IFS should be set
somewhere, too, for the case where someone does su from a malicious
user's terminal, then runs an init script.
hmm, evolution crashes if I attach a file, I'll paste it... and if
that fails, back to mutt :-)
Liam
--
Liam Quin - XML Activity Lead, W3C, http://www.w3.org/People/Quin/
Ankh: irc.sorcery.net www.valinor.sorcery.net irc.gnome.org www.advogato.org
Author, Open Source XML Database Toolkit, Wiley August 2000
Co-author: The XML Specification Guide, Wiley 1999; Mastering XML, Sybex 2001
*** pre-liam/functions 2002-05-21 23:46:34.0 -1000
--- functions 2002-05-22 00:27:14.0 -1000
***
*** 11,53
#
# i18n originally by: Arnaldo Carvalho de Melo [EMAIL PROTECTED],
# Wanderlei Antonio Cavassin
TEXTDOMAIN=initscripts
TEXTDOMAINDIR=/etc/locale
LOCPATH=/etc/locale
- export TEXTDOMAINDIR LOCPATH
# Make sure umask is sane
umask 022
# First set up a default search path.
! export PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin
# Get a sane screen width
[ -z ${COLUMNS:-} ] COLUMNS=80
! if [ -z $GP_LANG -a -z $LANGUAGE -a -f /etc/sysconfig/i18n -a -z $NOLOCALE ];
then
. /etc/sysconfig/i18n
! [ -n $LANGUAGE ] GP_LANG=$LANGUAGE || GP_LANG=$LANG
! if [ ${LANG:-} = ja_JP.eucJP -a `/sbin/consoletype` != pty ]; then
! unset LANG
else
export LANG
fi
- fi
- if [ -f /etc/sysconfig/i18n -a -z ${NOLOCALE:-} ] ; then
. /etc/sysconfig/i18n
! if [ ${LANG:-} = ja_JP.eucJP -a `/sbin/consoletype` != pty ]; then
! unset LANG
! elif [ ${LANG:-} = ko_KR.eucKR -a `/sbin/consoletype` != pty ]; then
! unset LANG
! elif [ ${LANG:-} = zh_CN.GB2312 -a `/sbin/consoletype` != pty ]; then
! unset LANG
! elif [ ${LANG:-} = zh_TW.Big5 -a `/sbin/consoletype` != pty ]; then
unset LANG
- else
- export LANG
fi
fi
# Currently Aurora can only display latin1 text, as it uses an 8bit
--- 11,57
#
# i18n originally by: Arnaldo Carvalho de Melo [EMAIL PROTECTED],
# Wanderlei Antonio Cavassin
+
TEXTDOMAIN=initscripts
TEXTDOMAINDIR=/etc/locale
LOCPATH=/etc/locale
# Make sure umask is sane
umask 022
# First set up a default search path.
! PATH=/sbin:/usr/sbin:/bin:/usr/bin:/usr/X11R6/bin
!
! export TEXTDOMAINDIR LOCPATH PATH
! # why is TEXTFOMAIN not exported? - Liam
!
! TEXTDOMAIN=initscripts
# Get a sane screen width
[ -z ${COLUMNS:-} ] COLUMNS=80
! if [ -z $NOLOCALE -a -f /etc/sysconfig/i18n ] ; then
! if [ -z $GP_LANG -a -z $LANGUAGE ]; then
. /etc/sysconfig/i18n
! if [ -n $LANGUAGE ] ; then
! GP_LANG=$LANGUAGE
else
+ GP_LANG=$LANG
+ fi
+
export LANG
fi
. /etc/sysconfig/i18n
!
! # only use 16-bit locales on the physical console
! case ${LANG:-} in
! ja_JP.eucJP|ko_KR.eucKR|zh_CN.GB2312|zh_TW.Big5)
! if [ `/sbin/consoletype` != pty ]; then
unset LANG
fi
+ ;;
+ esac
fi
# Currently Aurora can only display latin1 text, as it uses an 8bit
***
*** 60,66
esac
fi
-
# Read in our configuration
if [ -z ${BOOTUP:-} ]; then
if [ -f /etc/sysconfig/init ]; then
--- 64,69
***
*** 153,165
# Check if $pid (could be plural) are running
checkpid() {
while [ $1 ]; do
[ -d /proc/$1 ] return 0
shift
done
return 1
}
-
# A function to start a program.
daemon() {
# Test syntax.
--- 156,168
# Check if $pid (could be plural) are running
checkpid() {
while [ $1 ]; do
+ # relies on /proc - would it be better to use kill -0? -- Liam
[ -d /proc/$1 ] return 0
shift
done
return 1
}
# A function to start a program.
daemon() {
# Test syntax.
***
*** 201,206
--- 204,211
[ -z $gotbase ] base=${1##*/}
# See if it's already running. Look *only* at the pid file.
+ # why? what if it's running but the pidfile was removed? this
+ # seems fragile - Liam
pid=`pidfileofproc $base`
[ -n ${pid:-} ] return
***
*** 309,315
# First try /var/run/*.pid files
if [ -f /var/run/${base}.pid ] ; then
! read pid /var/run/${base}.pid
for p in $line ; do
[ -z ${p//[0-9]/} -a -d /proc/$p ] pid=$pid $p
done
--- 314,321
# First try /var/run/*.pid files
if [ -f