Date: Mon, 08 Jun 2026 23:01:12 +0000 From: Dag-Erling=?utf-8?Q? Sm=C3=B8rg?=rav <des@FreeBSD.org> To: src-committers@FreeBSD.org, dev-commits-src-all@FreeBSD.org, dev-commits-src-branches@FreeBSD.org Subject: git: d09b42a876bb - stable/14 - rc: Bail if /dev/null is not a device Message-ID: <6a2749b8.23bfe.7991b2e9@gitrepo.freebsd.org>
index | next in thread | raw e-mail
The branch stable/14 has been updated by des: URL: https://cgit.FreeBSD.org/src/commit/?id=d09b42a876bbd3a03edd8443976d0ad55a864e2e commit d09b42a876bbd3a03edd8443976d0ad55a864e2e Author: Dag-Erling Smørgrav <des@FreeBSD.org> AuthorDate: 2026-06-05 15:53:29 +0000 Commit: Dag-Erling Smørgrav <des@FreeBSD.org> CommitDate: 2026-06-08 23:00:54 +0000 rc: Bail if /dev/null is not a device On startup, check that /dev/null exists and is a character device. Otherwise, one of two things will happen: either /dev is a writable directory and we will immediately create /dev/null as a regular file and dump garbage into it, or it does not and we will spit out a stream of error messages about failing to create /dev/null. PR: 295782 MFC after: 1 week Reviewed by: jhb, emaste Differential Revision: https://reviews.freebsd.org/D57447 (cherry picked from commit b5a96894f67a92f78f0641763eff1e0a46f2e036) --- libexec/rc/rc | 5 +++++ share/man/man8/rc.8 | 13 +++++++++++-- 2 files changed, 16 insertions(+), 2 deletions(-) diff --git a/libexec/rc/rc b/libexec/rc/rc index ae1b24a6f36d..3df98ef8a714 100644 --- a/libexec/rc/rc +++ b/libexec/rc/rc @@ -49,6 +49,11 @@ HOME=/ PATH=/sbin:/bin:/usr/sbin:/usr/bin export HOME PATH +if ! [ -c /dev/null ]; then + echo "/dev is not populated" >&2 + exit 1 +fi + if [ "$1" = autoboot ]; then autoboot=yes _boot="faststart" diff --git a/share/man/man8/rc.8 b/share/man/man8/rc.8 index fa736ce50394..beb0e86c6142 100644 --- a/share/man/man8/rc.8 +++ b/share/man/man8/rc.8 @@ -30,8 +30,7 @@ .\" .\" @(#)rc.8 8.2 (Berkeley) 12/11/93 .\" -.Dd June 1, 2023 -.Dd September 20, 2024 +.Dd June 4, 2026 .Dt RC 8 .Os .Sh NAME @@ -99,6 +98,16 @@ command provides a scripting interface to modify system config files. .Ss Operation of Nm .Bl -enum .It +Verify that +.Pa /dev/null +exists and is a character device. +If that is not the case, +.Nm +prints an error message and terminates. +This is normally caused by forgetting to enable +.Xr devfs 5 +in a jail's configuration. +.It If autobooting, set .Va autoboot Ns = Ns Li yes and enable a flaghome | help
Want to link to this message? Use this
URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?6a2749b8.23bfe.7991b2e9>
