git: c96d5c97bb65 - stable/14 - MFC jail: avoid a clash with /etc/jail.conf.d between rc and jail(8)

From: Jamie Gritton <>
Date: Thu, 28 Sep 2023 04:39:39 UTC
The branch stable/14 has been updated by jamie:


commit c96d5c97bb65a1b0bc135b452f13d0ca6a8d60c9
Author:     Jamie Gritton <>
AuthorDate: 2023-09-25 00:03:09 +0000
Commit:     Jamie Gritton <>
CommitDate: 2023-09-28 04:39:00 +0000

    MFC jail: avoid a clash with /etc/jail.conf.d between rc and jail(8)
    Since 13.1, /etc/rc.d/jail has looked for a per-jail config file in
    /etc/jail.conf.d. For RELENG 14, the ".include" directive was added to
    jail(8), with a sample line in the jail.conf(5) man page that includes
    These two use cases don't work together. When the jail.conf.d files
    are included from a master jail.conf, the files in jail.conf.d are
    likely to hold only partial configurations, and shouldn't be directly
    loaded by rc.d/jail. But there are existing configurations that depend
    on the current rc.d behavior. While users could be advised not to
    include from /etc/jail.conf.d, it's the natural choice even if not
    mentioned in jail.conf.5.
    The workaround is for rc.d/jail to continue to load the individual
    files, but only when /etc/jail.conf doesn't include from that
    directory (via a simple grep test), This allows the current use
    while not breaking the previous use.
    Reported by:    antranigv at
    Differential Revision:
    (cherry picked from commit a2440348eed75bb7682579af0905b652747fd016)
 libexec/rc/rc.d/jail | 4 +++-
 1 file changed, 3 insertions(+), 1 deletion(-)

diff --git a/libexec/rc/rc.d/jail b/libexec/rc/rc.d/jail
index f8995c7e3b00..f12dae280bb0 100755
--- a/libexec/rc/rc.d/jail
+++ b/libexec/rc/rc.d/jail
@@ -126,7 +126,9 @@ parse_options()
 		if [ -r "$_jconf" ]; then
 			return 0
-		elif [ -r "$_jconfdir" ]; then
+		elif [ -r "$_jconfdir" ] && ! egrep -q \
+		    '^\s*\.include\s*["'\'']?/etc/jail.conf.d/' "$jail_conf" \
+		    2>/dev/null; then
 			return 0
 		elif [ -r "$jail_conf" ]; then