From nobody Wed May 15 18:47:50 2024 X-Original-To: dev-commits-src-all@mlmmj.nyi.freebsd.org Received: from mx1.freebsd.org (mx1.freebsd.org [IPv6:2610:1c1:1:606c::19:1]) by mlmmj.nyi.freebsd.org (Postfix) with ESMTP id 4Vfj070HJKz4B3WP; Wed, 15 May 2024 18:47:51 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from mxrelay.nyi.freebsd.org (mxrelay.nyi.freebsd.org [IPv6:2610:1c1:1:606c::19:3]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256 client-signature RSA-PSS (4096 bits) client-digest SHA256) (Client CN "mxrelay.nyi.freebsd.org", Issuer "R3" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4Vfj066y2Vz4sBg; Wed, 15 May 2024 18:47:50 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1715798871; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=4261E4b4TXVBtkMQDsRUnf/cwKMaCFlF9s0ifuJUeBU=; b=Hro9jjv9v/kHqwBrULO8sfXJiOHCKMbBgPdXLWWDh9jU6BFqhW1CGyLm10Cx1uyl9+3wte n2c+taCu/zbx0gkqI1iUM19qzTzc99vsbLy0rtenvG7kM4EKK7Rfsh95klLejJOj7hGbXr iA/a7ZliVi9Z28yBx6ObvlM1FsDl9QHnHoa+/YXRQAtWVLzLHhfECdHgVNJ1bWyBHWWQQl 3gv0Rs2sOytjjL6zSkbn8VW59CNYVw953L6Te7ZkJBsSGPdVugEK9X+9hmrvwFVW8aWwts UmF9/tZrkqgwjPeaFQDdvGnET7+pZYDXadHmogOTbxXmoxG7cCKp05+PIVb/wg== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1715798871; a=rsa-sha256; cv=none; b=f6GCuW+PjBzaec56h2jFxLiduTrPve7u3EyZngpV2VsApuXhbXkalozmPoGTUDwa0TUdYz lcVEEwrFn78IFUt8Mt4vtDOJBmuCrmFo6cnlkOH/WOdp0eyaRA06hF9z/hNBh7MT4V1hsn IZiLYit2XKOboy9yRjdYX9iUoYGCzaQtSVE0VtA4oi3YlA3bdyOu1S2Wt1+FAxqozj4jjl 95gkSdfFpOrMQpk8RRbjl5++4WnuvM85/9brpaamN07L/zQB8DTxz6QaoNggtAm0DWedPN 7zWkOWn7B84THMwcpRzeJYG7L5YbqyHSqhqv/ItjYuc3mYDH/Sm1CxYvqc3yJg== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1715798871; h=from:from:reply-to:subject:subject:date:date:message-id:message-id: to:to:cc:mime-version:mime-version:content-type:content-type: content-transfer-encoding:content-transfer-encoding; bh=4261E4b4TXVBtkMQDsRUnf/cwKMaCFlF9s0ifuJUeBU=; b=xKgTBcsRnj7JSQJh508RwARSulk/iTTqfsvZkQC2BJ+s1JFfJx4SVuWHM6Go9o8mQz7yRv iwf9ShZNuVgk69snC2NmVEB1an8wgpfyBEmEAinvOdID9aMiOmXHeAgNdmGIskg3JWwDrA 00vIljW6EroDmceyDPUhyt2jPEMhH69SdDkNqYKUDW2r/YVnzJPX8W7O2l/rWmUNaDgpoq /AwhAuiNYf/PuqAUgwYivX6zPaX5uRMbx31mtEQn3JaMIZ5MBwsHVPqyZw4Bo7Qo0E0CS3 SqBpa/YyuyraRXXZr7XDdtqItfYBOms0Avfah2ZGfr3Hy8KeTzkoC1ICJSMtuQ== Received: from gitrepo.freebsd.org (gitrepo.freebsd.org [IPv6:2610:1c1:1:6068::e6a:5]) (using TLSv1.3 with cipher TLS_AES_256_GCM_SHA384 (256/256 bits) key-exchange X25519 server-signature RSA-PSS (4096 bits) server-digest SHA256) (Client did not present a certificate) by mxrelay.nyi.freebsd.org (Postfix) with ESMTPS id 4Vfj066YXzzQvP; Wed, 15 May 2024 18:47:50 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.17.1/8.17.1) with ESMTP id 44FIloSZ043399; Wed, 15 May 2024 18:47:50 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.17.1/8.17.1/Submit) id 44FIlom2043397; Wed, 15 May 2024 18:47:50 GMT (envelope-from git) Date: Wed, 15 May 2024 18:47:50 GMT Message-Id: <202405151847.44FIlom2043397@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Dag-Erling =?utf-8?Q?Sm=C3=B8rgrav?= Subject: git: 0a09b741a794 - releng/14.1 - adduser: Additional variable fixes. List-Id: Commit messages for all branches of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-all List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-all@freebsd.org Sender: owner-dev-commits-src-all@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: des X-Git-Repository: src X-Git-Refname: refs/heads/releng/14.1 X-Git-Reftype: branch X-Git-Commit: 0a09b741a7946c347310980d3f980044feda792b Auto-Submitted: auto-generated The branch releng/14.1 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=0a09b741a7946c347310980d3f980044feda792b commit 0a09b741a7946c347310980d3f980044feda792b Author: Dag-Erling Smørgrav AuthorDate: 2024-05-15 12:13:49 +0000 Commit: Dag-Erling Smørgrav CommitDate: 2024-05-15 18:47:24 +0000 adduser: Additional variable fixes. One function used `_input` without making it local, causing its value to leak into other functions. This broke the `-f` case. Fix that instance and initialize all local variables that weren't already initialized. Fixes: 170d0882903e MFC after: 3 days Reviewed by: karels Differential Revision: https://reviews.freebsd.org/D45204 (cherry picked from commit 46a619c6d4cfc662069950baca16ec2a3b18b8a5) (cherry picked from commit db5aefb1cae14e31263ddb146f5952ca64bf6865) Approved by: re (cperciva) --- usr.sbin/adduser/adduser.sh | 41 +++++++++++++++++++++-------------------- 1 file changed, 21 insertions(+), 20 deletions(-) diff --git a/usr.sbin/adduser/adduser.sh b/usr.sbin/adduser/adduser.sh index 61a4b3b5058f..7c3fdb418179 100644 --- a/usr.sbin/adduser/adduser.sh +++ b/usr.sbin/adduser/adduser.sh @@ -53,7 +53,7 @@ info() { # by pw(8). # get_nextuid () { - local _uid=$1 _nextuid + local _uid=$1 _nextuid= if [ -z "$_uid" ]; then _nextuid="$(${PWCMD} usernext | cut -f1 -d:)" @@ -101,7 +101,7 @@ show_usage() { # basename of the shell is output. # valid_shells() { - local _prefix + local _prefix= ${GREPCMD} '^[^#]' ${ETCSHELLS} | while read _path _junk ; do @@ -119,7 +119,7 @@ valid_shells() { # full path to the shell from the /etc/shells file. # fullpath_from_shell() { - local _shell=$1 _fullpath + local _shell=$1 _fullpath= if [ -z "$_shell" ]; then return @@ -154,7 +154,7 @@ fullpath_from_shell() { # will emit an informational message saying so. # shell_exists() { - local _sh="$1" + local _sh=$1 if [ -z "$(fullpath_from_shell "$_sh")" ] ; then err "Invalid shell ($_sh) for user $username." @@ -193,8 +193,9 @@ save_config() { # message or lock the account, do so. # add_user() { - local _uid _name _comment _gecos _home _group _grouplist _shell _class - local _dotdir _expire _pwexpire _passwd _upasswd _passwdmethod _pwcmd + local _uid= _name= _comment= _gecos= _home= _group= _grouplist= + local _shell= _class= _dotdir= _expire= _pwexpire= _passwd= _upasswd= + local _passwdmethod= _pwcmd= # Is this a configuration run? If so, don't modify user database. # @@ -299,7 +300,7 @@ add_user() { fi fi - local _line _owner _perms _file _dir + local _line= _owner= _perms= _file= _dir= if [ -n "$msgflag" ]; then if [ -r "$msgfile" ]; then # We're evaluating the contents of an external file. @@ -331,7 +332,7 @@ add_user() { # a file it will output an error message and return to the caller. # get_user() { - local _input + local _input= # No need to take down user names if this is a configuration saving run. [ -n "$configflag" ] && return @@ -366,7 +367,7 @@ get_user() { # and batch (from file) mode. # get_gecos() { - local _input + local _input= # No need to take down additional user information for a configuration run. [ -n "$configflag" ] && return @@ -386,7 +387,7 @@ get_gecos() { # If an invalid shell is entered it will simply use the default shell. # get_shell() { - local _input _fullpath + local _input= _fullpath= ushell="$defaultshell" # Make sure the current value of the shell is a valid one @@ -424,7 +425,7 @@ get_shell() { # and batch input. # get_homedir() { - _input= + local _input= if [ -z "$fflag" ]; then echo -n "Home directory [${homeprefix}/${username}]: " read _input @@ -450,7 +451,7 @@ get_homedir() { # Reads the account's home directory permissions. # get_homeperm() { - local _input _prompt + local _input= _prompt= uhomeperm=$defaultHomePerm if [ -n "$uhomeperm" ]; then @@ -473,7 +474,7 @@ get_homeperm() { # so, enable ZFS home dataset creation. # get_zfs_home() { - local _prefix + local _prefix= # check if zfs kernel module is loaded before attempting to run zfs to # prevent loading the kernel module on systems that don't use ZFS @@ -494,7 +495,7 @@ get_zfs_home() { # allocates one if it is not specified. # get_uid() { - local _input _prompt + local _input= _prompt= uuid=${uidstart} if [ -n "$uuid" ]; then @@ -519,7 +520,7 @@ get_uid() { # Reads login class of account. Can be used in interactive or batch mode. # get_class() { - local _input _class + local _input= _class= uclass="$defaultclass" _class=${uclass:-"default"} @@ -541,7 +542,7 @@ get_class() { # will then provide a login group with the same name as the username. # get_logingroup() { - local _input + local _input= ulogingroup="$defaultLgroup" if [ -z "$fflag" ]; then @@ -560,7 +561,7 @@ get_logingroup() { # and batch modes. # get_groups() { - local _input _group + local _input= _group= ugroups="$defaultgroups" _group=${ulogingroup:-"${username}"} @@ -626,7 +627,7 @@ get_password() { # Ask user if they want to enable encryption on their ZFS home dataset. # get_zfs_encryption() { - local _input _prompt + local _input= _prompt= _prompt="Enable ZFS encryption? (yes/no) [${Zencrypt}]: " while : ; do echo -n "$_prompt" @@ -702,7 +703,7 @@ set_zfs_perms() { # adds it to the user database. # input_from_file() { - local _field + local _field= while read -r fileline ; do case "$fileline" in @@ -733,7 +734,7 @@ input_from_file() { # the user database. # input_interactive() { - local _disable _pass _passconfirm _input + local _disable= _pass= _passconfirm= _input= local _random="no" local _emptypass="no" local _usepass="yes"