In fullpath_from_shell(), move the nologin detection before the cat | while

loop to avoid an incorrect display of the nologin path twice.

PR:		71786
Submitted by:	Andrew Hayden <andrew.hayden@gmail.com>
Reviewed by:	mtm
MFC after:	3 days
This commit is contained in:
roam 2004-09-23 13:09:42 +00:00
parent 83e80bafba
commit 6c3df7485a

View File

@ -126,6 +126,17 @@ fullpath_from_shell() {
_shell=$1
[ -z "$_shell" ] && return 1
# /usr/sbin/nologin is a special case; it needs to be handled
# before the cat | while loop, since a 'return' from within
# a subshell will not terminate the function's execution, and
# the path to the nologin shell might be printed out twice.
#
if [ "$_shell" = "${NOLOGIN}" -o \
"$_shell" = "${NOLOGIN_PATH}" ]; then
echo ${NOLOGIN_PATH}
return 0;
fi
cat ${ETCSHELLS} |
while read _path _junk ; do
case "$_path" in
@ -141,13 +152,6 @@ fullpath_from_shell() {
esac
done
# /usr/sbin/nologin is a special case
if [ "$_shell" = "${NOLOGIN}" -o \
"$_shell" = "${NOLOGIN_PATH}" ]; then
echo ${NOLOGIN_PATH}
return 0;
fi
return 1
}