aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorRoy Marples <roy@marples.name>2007-07-22 10:45:56 +0000
committerRoy Marples <roy@marples.name>2007-07-22 10:45:56 +0000
commitb67f71ca5dd4b21b1e342ce8f27a565093f25e44 (patch)
treedcbb9bef23199129572aaa76332a6221dc4f2211
parent9211d8b3dba78e03e09ee56d839e392fc13bf1c0 (diff)
Harden gendepends.sh some more so we only capture the stdout we want from
the depend function, #186072.
-rw-r--r--ChangeLog15
-rwxr-xr-xsh/gendepends.sh5
2 files changed, 15 insertions, 5 deletions
diff --git a/ChangeLog b/ChangeLog
index 9a81b7cf..df0eb0cd 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -1,13 +1,18 @@
# ChangeLog for Gentoo System Intialization ("rc") scripts
# Copyright 1999-2007 Gentoo Foundation; Distributed under the GPLv2
+ 22 Jul 2007; Roy Marples <uberlord@gentoo.org>:
+
+ Harden gendepends.sh some more so we only capture the stdout we want from
+ the depend function, #186072.
+
21 Jul 2007; Roy Marples <uberlord@gentoo.org>:
- RC_DEPEND_STRICT now controls dependency strictness.
- If yes then we only use services in the boot and default runlevels,
- regradless of service state.
- If no then we take into account coldplugged services and the state
- of currently running services.
+ RC_DEPEND_STRICT now controls dependency strictness.
+ If yes then we only use services in the boot and default runlevels,
+ regradless of service state.
+ If no then we take into account coldplugged services and the state
+ of currently running services.
Fixes #185640.
15 Jul 2007; Roy Marples <uberlord@gentoo.org>:
diff --git a/sh/gendepends.sh b/sh/gendepends.sh
index 6c86f2a9..0cb04e66 100755
--- a/sh/gendepends.sh
+++ b/sh/gendepends.sh
@@ -33,6 +33,9 @@ for SVCNAME in * ; do
SVCNAME=${SVCNAME##*/}
(
+ # Save stdout in fd3, then remap it to stderr
+ exec 3>&1 1>&2
+
rc_c=${SVCNAME%%.*}
if [ -n "${rc_c}" -a "${rc_c}" != "${SVCNAME}" ] ; then
[ -e /etc/conf.d/"${rc_c}" ] && . /etc/conf.d/"${rc_c}" >&2
@@ -42,6 +45,8 @@ for SVCNAME in * ; do
[ -e /etc/conf.d/"${SVCNAME}" ] && . /etc/conf.d/"${SVCNAME}" >&2
if . /etc/init.d/"${SVCNAME}" ; then
+ # Restore stdout now
+ exec 1>&3
echo "${SVCNAME}"
depend