From nobody Wed Apr 06 03:41:11 2022 X-Original-To: dev-commits-src-branches@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 6B38A1A8FB3B; Wed, 6 Apr 2022 03:41:12 +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 4KY9KM5lQzz4qsD; Wed, 6 Apr 2022 03:41:11 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1649216472; 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=Lt+GOfcStICTk4uDCN2nxFQswLMfTqMNL80CjBLhNuQ=; b=IScR0Isy6yzGdjD08WpARfc+RuiDe3Tn+FSkVpg3XiLzMo057wXLPOOSbHA4XjoUnEZfLp QacO+pPgCrHBPNb6wC8decCiCpek8Quw8jZrT9Axvue/hrSc76o1ABisS5jp6yFnSXz3mw xxeqKTqS44rNbrCFLEC5HlhRi4YqflpdjdbGuCl518Gf066BwnN5UQy+D1UcIrMiDqESOK 2iE/7N4lPQMeEWq7+sx0An/EvLsmvFTLihGYb2egMFiMmBimIvWqIgQCTqm6HKoXJH9z4J GxxuncL++US/AWvADJni5q+Re/hjMB7vHrpTDAx5iJ/cGH80VYl/59XsFxaU+Q== 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 8E7D813673; Wed, 6 Apr 2022 03:41:11 +0000 (UTC) (envelope-from git@FreeBSD.org) Received: from gitrepo.freebsd.org ([127.0.1.44]) by gitrepo.freebsd.org (8.16.1/8.16.1) with ESMTP id 2363fBiG088508; Wed, 6 Apr 2022 03:41:11 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.16.1/8.16.1/Submit) id 2363fB7O088507; Wed, 6 Apr 2022 03:41:11 GMT (envelope-from git) Date: Wed, 6 Apr 2022 03:41:11 GMT Message-Id: <202204060341.2363fB7O088507@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org From: Kyle Evans Subject: git: 227e52a9c0b0 - stable/13 - bectl: push space-in-name check down into libbe List-Id: Commits to the stable branches of the FreeBSD src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-branches List-Help: List-Post: List-Subscribe: List-Unsubscribe: Sender: owner-dev-commits-src-branches@freebsd.org X-BeenThere: dev-commits-src-branches@freebsd.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: kevans X-Git-Repository: src X-Git-Refname: refs/heads/stable/13 X-Git-Reftype: branch X-Git-Commit: 227e52a9c0b0be9656757fec47a2648f5619bf67 Auto-Submitted: auto-generated ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1649216472; 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=Lt+GOfcStICTk4uDCN2nxFQswLMfTqMNL80CjBLhNuQ=; b=xfcScAkGvhxMdhOQZQ8Sdidr+2fZ7Hd8FVM0dBQ3OcEzI9T1bsUEeofi4c7/Vmd3iT3ffT Tpp6BrUOIViIZ5j8sY+FyRlAcWMfCOYP6zznUVmrQy/2boWpmxUZVZVEBN33UWBLPPDqNV 0vc8uSl7a+pF/7jIronpOou1AaqCNLOk70b0NaNdRV0r++vVTxQcYBS+RIYCNAS5/5nlPk 6A4xBApVtY0dAaVOgoLiNfXMHRkQ2QasRgwmxbsM4zsGW9NseFXTOM7+BhXABREuViEauU gw462P4m/ozLHd2bqH7IX9pV21m5Mkh6nskXckCKSBnwxFiv9IOoJ1ulXJX/eQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1649216472; a=rsa-sha256; cv=none; b=QYL7HajOkAUjHHym/lh44+Ex8Vx77PZ9/qPx8sgfi1lMlSnVF+qMyKN8cYzcD0XET+ONs7 bhrTCaK75iWtkAkb9c7IOEdDW9dH14X89TKdjKUla4j5QgT3WYOm//eVE3Pv0W1/tua2Gs x8jUvQ2CSj6DLa5bD/hHuk/P9gU7cETvPVlbsAfJQ8H6UhCroip3YDiJrVbC5gkqDI6spQ 35UQgvD5Wjovio11aZFFRgMZXiWn/6wUPCga1QQW0PRtcFIUuTNyl7WTyO/qXIanZqc3wz +NvVDl2rkB53DIdp64ne2hpxUy3+0Yurkaon2hbYSSZwJoWaV8c5ejglPLmD9w== ARC-Authentication-Results: i=1; mx1.freebsd.org; none X-ThisMailContainsUnwantedMimeParts: N The branch stable/13 has been updated by kevans: URL: https://cgit.FreeBSD.org/src/commit/?id=227e52a9c0b0be9656757fec47a2648f5619bf67 commit 227e52a9c0b0be9656757fec47a2648f5619bf67 Author: Kyle Evans AuthorDate: 2022-04-03 02:04:31 +0000 Commit: Kyle Evans CommitDate: 2022-04-06 03:37:07 +0000 bectl: push space-in-name check down into libbe This check was previously in `create` only, not applying to renames. It should really be applied at the libbe level, so that we can avoid writing about this restriction over and over again. While we're here: `bectl rename` always succeeds, even when it doesn't. Start returning the error. Reported By: Christian McDonald (cherry picked from commit dadb9c70938c4ae2c260f6af65752c67ac752284) --- lib/libbe/be.c | 11 +++++++++++ sbin/bectl/bectl.c | 9 ++------- 2 files changed, 13 insertions(+), 7 deletions(-) diff --git a/lib/libbe/be.c b/lib/libbe/be.c index d6fe027f5df3..13f7a59d5215 100644 --- a/lib/libbe/be.c +++ b/lib/libbe/be.c @@ -961,6 +961,17 @@ be_validate_name(libbe_handle_t *lbh, const char *name) if (!zfs_name_valid(name, ZFS_TYPE_DATASET)) return (BE_ERR_INVALIDNAME); + /* + * ZFS allows spaces in boot environment names, but the kernel can't + * handle booting from such a dataset right now. vfs.root.mountfrom + * is defined to be a space-separated list, and there's no protocol for + * escaping whitespace in the path component of a dev:path spec. So + * while loader can handle this situation alright, it can't safely pass + * it on to mountroot. + */ + if (strchr(name, ' ') != NULL) + return (BE_ERR_INVALIDNAME); + return (BE_ERR_SUCCESS); } diff --git a/sbin/bectl/bectl.c b/sbin/bectl/bectl.c index d3de58ea2982..2b7af4e55419 100644 --- a/sbin/bectl/bectl.c +++ b/sbin/bectl/bectl.c @@ -134,7 +134,6 @@ get_cmd_info(const char *cmd) return (NULL); } - static int bectl_cmd_activate(int argc, char *argv[]) { @@ -233,10 +232,7 @@ bectl_cmd_create(int argc, char *argv[]) bootenv = *argv; err = BE_ERR_SUCCESS; - if (strchr(bootenv, ' ') != NULL) - /* BE datasets with spaces are not bootable */ - err = BE_ERR_INVALIDNAME; - else if ((atpos = strchr(bootenv, '@')) != NULL) { + if ((atpos = strchr(bootenv, '@')) != NULL) { /* * This is the "create a snapshot variant". No new boot * environment is to be created here. @@ -478,7 +474,6 @@ bectl_cmd_rename(int argc, char *argv[]) dest = argv[2]; err = be_rename(be, src, dest); - switch (err) { case BE_ERR_SUCCESS: break; @@ -487,7 +482,7 @@ bectl_cmd_rename(int argc, char *argv[]) src, dest); } - return (0); + return (err); } static int