From nobody Mon Oct 6 15:31:22 2025 X-Original-To: dev-commits-src-main@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 4cgNXW0l7Xz69X9T; Mon, 06 Oct 2025 15:31:23 +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 "R12" (verified OK)) by mx1.freebsd.org (Postfix) with ESMTPS id 4cgNXW0FYyz3fTb; Mon, 06 Oct 2025 15:31:23 +0000 (UTC) (envelope-from git@FreeBSD.org) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1759764683; 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=5OC3EAEQvxpmxv9G0RyB4Pk9+ympnQDCgGbm8A3evhQ=; b=j1723qglN15C2pweBf0/m8SZZ9Vb6mjnAKX4RImr8uOUaWcdAAEyvv2F9NRnfwDxFQz8tc oYrxfet7TA0Pt8Sdp6ilMo1W6YolZBNXOj1JucOob9HWeyI2eGIBOjyKu/qwKybbGnc3P8 yNUR7cmbC0PWz5uzN/dEmezUPbFs8q/sXD0J4/sumWC28HSn9EPetky7tezGqEF9bPsEs8 MaFBsg3c3mUU7//ijBhIRD+LqVVXZuo0q27xfyMRIgU8EjmqzIrQx6044y5fUwf0KNQHwT /oQpGspfa9O0IwTxHtyYGMbgwAOvwX2buWaxc1Wg5URYsdWecYKC3GELiW16uw== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=freebsd.org; s=dkim; t=1759764683; 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=5OC3EAEQvxpmxv9G0RyB4Pk9+ympnQDCgGbm8A3evhQ=; b=gxY49ji4b9DIjaBKWMVSlo5MEu8aisDpJznfOpLKOI8E2Y0XeyQSKY8UttphvEcZnOt3EO pCutPrEWa87XK4SyGnc9Ozn4ZPB4cwkrMBzKLYqT6zUdjXkmLNbWQQCkoCHdgBhVIQy4zF 9FnHUBUtYmLmUVQbidBNzRiCtsSLA8IxxBIayZciLYClGtBIW0fcEipabwPozERkj+X7o+ +hJWP5Nn4ki+5b9MIJVo4GhLE8nE1GIstJt1vSB6HpNqH9SH+LQt0+ZunfHS97rFrxG7cT DjXSdyk81XFTyIIlFab2E31A23iZAKvj16W2pCPLIqXRRzAyXDxHx+roewh6rQ== ARC-Seal: i=1; s=dkim; d=freebsd.org; t=1759764683; a=rsa-sha256; cv=none; b=jlOIpoajUX0GtIMaP3r11OPp6S3H8bs/hOA7d5OQSao3l4EjOhqxlTrPyNGBUvhe2c8cZk kTCAZLuloVA/aPgOnatJlVotNjoNMr1TmkNCbJUQwwmg6gmAsErLPPBd/o0OkGH0e5IZZ1 OYb18APCimeC05KyvtMuHpZbYl6aKi9ZYpfmI0+SCQ93Smq914as/VQS4u71XRAEbb3EGE zA/pfVTuC4SPxjCJHjufTmdLlMA7MYc6BM2kdGTybBycvqDR5jZe5f2I3jEIE8+2Ue7VvT WLb33XBvs17l4K2mNlZKh0WGI3KpZ4DsAE2HIYEXQOOJmjhR4vVr62SDbCAx5g== ARC-Authentication-Results: i=1; mx1.freebsd.org; none 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 4cgNXV6cbWz13rG; Mon, 06 Oct 2025 15:31:22 +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 596FVMRJ060357; Mon, 6 Oct 2025 15:31:22 GMT (envelope-from git@gitrepo.freebsd.org) Received: (from git@localhost) by gitrepo.freebsd.org (8.18.1/8.18.1/Submit) id 596FVMQ2060354; Mon, 6 Oct 2025 15:31:22 GMT (envelope-from git) Date: Mon, 6 Oct 2025 15:31:22 GMT Message-Id: <202510061531.596FVMQ2060354@gitrepo.freebsd.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-main@FreeBSD.org From: Mariusz Zaborski Subject: git: a0c709ab5af4 - main - lsvfs(1): Capsicumise List-Id: Commit messages for the main branch of the src repository List-Archive: https://lists.freebsd.org/archives/dev-commits-src-main List-Help: List-Post: List-Subscribe: List-Unsubscribe: X-BeenThere: dev-commits-src-main@freebsd.org Sender: owner-dev-commits-src-main@FreeBSD.org MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit X-Git-Committer: oshogbo X-Git-Repository: src X-Git-Refname: refs/heads/main X-Git-Reftype: branch X-Git-Commit: a0c709ab5af4e87ce4579404c4ffbd4295ad12c5 Auto-Submitted: auto-generated The branch main has been updated by oshogbo: URL: https://cgit.FreeBSD.org/src/commit/?id=a0c709ab5af4e87ce4579404c4ffbd4295ad12c5 commit a0c709ab5af4e87ce4579404c4ffbd4295ad12c5 Author: Faraz Vahedi AuthorDate: 2025-08-11 17:53:55 +0000 Commit: Mariusz Zaborski CommitDate: 2025-10-06 15:30:17 +0000 lsvfs(1): Capsicumise Signed-off-by: Faraz Vahedi Reviewed by: asomers, markj Pull Request: https://github.com/freebsd/freebsd-src/pull/1498 --- usr.bin/lsvfs/lsvfs.c | 51 +++++++++++++++++++++++++++------------------------ 1 file changed, 27 insertions(+), 24 deletions(-) diff --git a/usr.bin/lsvfs/lsvfs.c b/usr.bin/lsvfs/lsvfs.c index 5477d96434ac..8925b8988cd3 100644 --- a/usr.bin/lsvfs/lsvfs.c +++ b/usr.bin/lsvfs/lsvfs.c @@ -5,10 +5,12 @@ * */ +#include #include #include #include +#include #include #include #include @@ -38,41 +40,42 @@ static const char *fmt_flags(int); int main(int argc, char **argv) { - struct xvfsconf vfc, *xvfsp; + struct xvfsconf *xvfsp; size_t cnt, buflen; int rv = 0; argc--, argv++; + if (sysctlbyname("vfs.conflist", NULL, &buflen, NULL, 0) < 0) + err(EXIT_FAILURE, "sysctl(vfs.conflist)"); + if ((xvfsp = malloc(buflen)) == NULL) + errx(EXIT_FAILURE, "malloc failed"); + if (sysctlbyname("vfs.conflist", xvfsp, &buflen, NULL, 0) < 0) + err(EXIT_FAILURE, "sysctl(vfs.conflist)"); + cnt = buflen / sizeof(struct xvfsconf); + + caph_cache_catpages(); + if (caph_enter() != 0) + err(EXIT_FAILURE, "failed to enter capability mode"); + printf(HDRFMT, "Filesystem", "Num", "Refs", "Flags"); fputs(DASHES, stdout); - if (argc > 0) { - for (; argc > 0; argc--, argv++) { - if (getvfsbyname(*argv, &vfc) == 0) { - printf(FMT, vfc.vfc_name, vfc.vfc_typenum, - vfc.vfc_refcount, fmt_flags(vfc.vfc_flags)); - } else { - warnx("VFS %s unknown or not loaded", *argv); - rv++; + for (size_t i = 0; i < cnt; i++) { + if (argc > 0) { + int j; + for (j = 0; j < argc; j++) { + if (strcmp(argv[j], xvfsp[i].vfc_name) == 0) + break; } + if (j == argc) + continue; } - } else { - if (sysctlbyname("vfs.conflist", NULL, &buflen, NULL, 0) < 0) - err(EXIT_FAILURE, "sysctl(vfs.conflist)"); - if ((xvfsp = malloc(buflen)) == NULL) - errx(EXIT_FAILURE, "malloc failed"); - if (sysctlbyname("vfs.conflist", xvfsp, &buflen, NULL, 0) < 0) - err(EXIT_FAILURE, "sysctl(vfs.conflist)"); - cnt = buflen / sizeof(struct xvfsconf); - - for (size_t i = 0; i < cnt; i++) { - printf(FMT, xvfsp[i].vfc_name, xvfsp[i].vfc_typenum, - xvfsp[i].vfc_refcount, - fmt_flags(xvfsp[i].vfc_flags)); - } - free(xvfsp); + + printf(FMT, xvfsp[i].vfc_name, xvfsp[i].vfc_typenum, + xvfsp[i].vfc_refcount, fmt_flags(xvfsp[i].vfc_flags)); } + free(xvfsp); return (rv); }