From nobody Sat Jun 14 20:26:40 2025 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 4bKSTr5xYQz5plhn; Sat, 14 Jun 2025 20:26:40 +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 "R11" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4bKSTr4v3dz42K8; Sat, 14 Jun 2025 20:26:40 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1749932800; 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=F9xNoWQOkIL5/Lqgne1qGOosy1XZ+Gefj27RHqeU5bA=; b=q8R8w2KrC7g3RrWeYDg233NmLW9pRgcBnbw733qUR7zJMc5E6V+EUyPmS2L4d5lnCz3ADk xHhp/xlO3fPms1OwxKPe2W6Wk5ZxzIUxltwFHG0bd+S1KQvkfycfhlQo3FxP8vPti8GE2e j5KL6HTOAsNIKTO1iThBpWk8Px/bXWnynDoTg6cMFyxuPj1Ks4USg9iQyYbCqwHib4b6e7 zM98Yv6Zf+fEcObXvw+6iWbFcqUxoe+7lCIhjD5g/gnvbOoHNDKVLm7r8+2GpAd9OMIllC ChqD5MAC3RYgdTR/cnqvFOan+K7zlXcMmPrAAJxVRln0OQWLrifiirIws0ehAQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1749932800; 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=F9xNoWQOkIL5/Lqgne1qGOosy1XZ+Gefj27RHqeU5bA=; b=tB48wZJ8oBwKUY2sEqi3K4QjtRVrfzqdKLgzol8dYumt80GcTcIUMlE6A6Z2liZzApDLj+ 361O64J36cHbgzRYoY0iZVAL83+i3outlMp7F8TuSgXBDcV1jWQCz0zVSZUUkjtSS9mZj6 6A31HhQx6f0II5yPrY4rJ0FmC+X13hvLrBBfNJCUVP2uYnwDqsOfZyewhmYcgepnCGQQG/ wulk6N2CfXoiN1NmJD2RWXhSPeere9X3IxrAG0F6/2zWti49d+ctol4BziyaVay+gnJjeq /+jRusQm5LExc+bSMK4FJ0+4UajcKmVKJU529ZCGjMPdPZSIyZ+k/KfXGiC2Hw== ARC-Authentication-Results: i=1; mx1.freebsd.org; none ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1749932800; a=rsa-sha256; cv=none; b=D7jsQa+oaFFOOrnMnx+Nxj837qcuGnE7JgJ3OL9IKJOvFI8hEqcKRp4XNOo9dciU41lCxD mYWmfAELUhkm34iq1FgjepYxcqDgWKHbNiVK7dfzSNWzrsqPf0KA8GLVIQdHNXKdO0t/6L qaa9oo7keBTZT4EX9bqrYhSdG8ADInyc9Omf2Zo23XutiI47C3OVsEgn/1NavnpQYkRdXY w7pBSP/Kfn/AocdMzoD6TkftBPlRpYVbNm+zT+p077W7NLWWL9XdyiYGesOBqWPgD+SWjl 0S1LTn3I2ogB8MvVDGyOx1egJGUSAbqzEZLKrRMeLhNcpQWIOK8zRAewhWCYJw== 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 4bKSTr3ybszjgv; Sat, 14 Jun 2025 20:26:40 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.18.1/8.18.1) with ESMTP id 55EKQeak032228; Sat, 14 Jun 2025 20:26:40 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 55EKQeGM032225; Sat, 14 Jun 2025 20:26:40 GMT (envelope-from git) Date: Sat, 14 Jun 2025 20:26:40 GMT Message-Id: <202506142026.55EKQeGM032225@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Hiroki Sato Subject: git: 7faddeb395b7 - main - rc: Fix scripts that need pathname expansion 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: hrs X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: 7faddeb395b7976b44393db24f48ec47040eff07 Auto-Submitted: auto-generated The branch main has been updated by hrs: URL: https://cgit.FreeBSD.org/src/commit/?id=7faddeb395b7976b44393db24f48ec47040eff07 commit 7faddeb395b7976b44393db24f48ec47040eff07 Author: Hiroki Sato AuthorDate: 2025-06-14 20:24:41 +0000 Commit: Hiroki Sato CommitDate: 2025-06-14 20:24:41 +0000 rc: Fix scripts that need pathname expansion Reported by: Kenneth Raplee Differential Revision: https://reviews.freebsd.org/D45855 --- libexec/rc/rc.d/moused | 2 +- libexec/rc/rc.d/syscons | 4 ++-- libexec/rc/rc.subr | 24 ++++++++++++++++++++---- 3 files changed, 23 insertions(+), 7 deletions(-) diff --git a/libexec/rc/rc.d/moused b/libexec/rc/rc.d/moused index 6f1b95af0f0a..9bb1a5cedc31 100755 --- a/libexec/rc/rc.d/moused +++ b/libexec/rc/rc.d/moused @@ -69,7 +69,7 @@ moused_start() ;; esac - for ttyv in /dev/ttyv* ; do + for ttyv in $(expandpath "/dev/ttyv*"); do vidcontrol < ${ttyv} ${mousechar_arg} -m on done } diff --git a/libexec/rc/rc.d/syscons b/libexec/rc/rc.d/syscons index 325628a83d8c..7ad9b720e454 100755 --- a/libexec/rc/rc.d/syscons +++ b/libexec/rc/rc.d/syscons @@ -237,7 +237,7 @@ syscons_configure_keyboard() if [ -n "${allscreens_kbdflags}" ]; then sc_init echo -n ' allscreens_kbd' - for ttyv in /dev/ttyv*; do + for ttyv in $(expandpath "/dev/ttyv*"); do kbdcontrol ${allscreens_kbdflags} < ${ttyv} > ${ttyv} 2>&1 done fi @@ -381,7 +381,7 @@ syscons_start() if [ -n "${allscreens_flags}" ]; then sc_init echo -n ' allscreens' - for ttyv in /dev/ttyv*; do + for ttyv in $(expandpath "/dev/ttyv*"); do vidcontrol ${allscreens_flags} < ${ttyv} > ${ttyv} 2>&1 done fi diff --git a/libexec/rc/rc.subr b/libexec/rc/rc.subr index 359eebd1d342..d760b75a15a3 100644 --- a/libexec/rc/rc.subr +++ b/libexec/rc/rc.subr @@ -223,10 +223,11 @@ rc_trace() list_vars() { # Localize 'set' option below. - local - + local - _s local IFS=$'\n' line varname - # Disable path expansion in unquoted 'for' parameters below. + # Disable path expansion temporarily in unquoted 'for' parameters below. + _s=$(set +o) set -o noglob for line in $(set); do @@ -241,6 +242,7 @@ list_vars() ;; esac done + eval $_s } # set_rcvar [var] [defval] [desc] @@ -292,6 +294,19 @@ set_rcvar_obsolete() eval ${_var}_obsolete_msg=\"$*\" } +# expandpath str +# Apply pathname expansion to str. +# +expandpath() +{ + local _s + + _s=$(set +o) + set +o noglob + echo $1 + eval $_s +} + # # force_depend script [rcvar] # Force a service to start. Intended for use by services @@ -1783,18 +1798,19 @@ _run_rc_setup() _run_rc_doit() { - local _m + local _m _s debug "run_rc_command: doit: $*" _m=$(umask) ${_umask:+umask ${_umask}} # Disable pathname expansion temporarily for run_rc_command. + _s=$(set +o) set -o noglob eval "$@" - set +o noglob _return=$? umask ${_m} + eval $_s # If command failed and force isn't set, request exit. if [ $_return -ne 0 ] && [ -z "$rc_force" ]; then