From: Fabio M. Di Nitto Date: Thu, 12 Aug 2010 09:14:59 +0000 (+0000) Subject: Fix clvmd init script return code when executed as non-root user. X-Git-Tag: v2_02_91~1604 X-Git-Url: https://sourceware.org/git/?a=commitdiff_plain;h=2565ffad25808c25cbf5509e8c5ffc2a1c05671f;p=lvm2.git Fix clvmd init script return code when executed as non-root user. clvmd daemon itself does the right thing when invoked as non-root, by returning 4. The patch removes the use daemon function from /etc/rc.d/init.d/functions that´s unnecessary and has th bad habit to mask the return codes from the real daemon. Add a simple and generic check to see if clvmd is executed by root or not. Our stop/reload/restart paths in the init script are complex and not all the tools involved in the process are guaranteed to return 4 if executed by non-root against a process that´s running as root (for example kill -TERM will return -1 and parsing the output to catch the error is suboptimal at best). https://bugzilla.redhat.com/show_bug.cgi?id=553381 --- diff --git a/WHATS_NEW b/WHATS_NEW index b885df283..205ce34a9 100644 --- a/WHATS_NEW +++ b/WHATS_NEW @@ -1,5 +1,6 @@ Version 2.02.73 - ================================ + Fix clvmd init script exit code when executed as non-root user. Change default alignment of pe_start to 1MB. Add --norestorefile option to pvcreate. Require --restorefile when using pvcreate --uuid. diff --git a/scripts/clvmd_init_red_hat.in b/scripts/clvmd_init_red_hat.in index da09a3453..b1cc48ed2 100644 --- a/scripts/clvmd_init_red_hat.in +++ b/scripts/clvmd_init_red_hat.in @@ -66,7 +66,7 @@ start() { if ! rh_status_q; then echo -n "Starting $DAEMON: " - daemon $DAEMON $CLVMDOPTS || return $? + $DAEMON $CLVMDOPTS || return $? echo fi @@ -165,6 +165,11 @@ restart() { fi } +[ "$EUID" != "0" ] && { + echo "clvmd init script can only be executed as root user" + exit 4 +} + # See how we were called. case "$1" in start)