diff options
author | Peter Pentchev <roam@FreeBSD.org> | 2004-09-23 13:09:42 +0000 |
---|---|---|
committer | Peter Pentchev <roam@FreeBSD.org> | 2004-09-23 13:09:42 +0000 |
commit | 9f6df2c8ce1938be941e88bd77dbe7f03e73aa40 (patch) | |
tree | 18d0f9ec64ec61dc91c6049cac6c070b85d8ee1e /adduser | |
parent | 2058b1bd835f65e05f7a007ce764bc32fb388c04 (diff) | |
download | pw-darwin-9f6df2c8ce1938be941e88bd77dbe7f03e73aa40.tar.gz pw-darwin-9f6df2c8ce1938be941e88bd77dbe7f03e73aa40.tar.zst pw-darwin-9f6df2c8ce1938be941e88bd77dbe7f03e73aa40.zip |
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
Diffstat (limited to 'adduser')
-rw-r--r-- | adduser/adduser.sh | 18 |
1 files changed, 11 insertions, 7 deletions
diff --git a/adduser/adduser.sh b/adduser/adduser.sh index 050f2b1..0014e4c 100644 --- a/adduser/adduser.sh +++ b/adduser/adduser.sh @@ -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 } |