[Bug 204897] [jail] Jail names cannot start with a '0', resulting in 'jail: name cannot be numeric (unless it is the jid)'

bugzilla-noreply at freebsd.org bugzilla-noreply at freebsd.org
Sun Nov 29 18:13:11 UTC 2015


https://bugs.freebsd.org/bugzilla/show_bug.cgi?id=204897

            Bug ID: 204897
           Summary: [jail] Jail names cannot start with a '0', resulting
                    in 'jail: name cannot be numeric (unless it is the
                    jid)'
           Product: Base System
           Version: 10.2-RELEASE
          Hardware: Any
                OS: Any
            Status: New
          Severity: Affects Some People
          Priority: ---
         Component: kern
          Assignee: freebsd-bugs at FreeBSD.org
          Reporter: doublef.mobile at gmail.com

Created attachment 163656
  --> https://bugs.freebsd.org/bugzilla/attachment.cgi?id=163656&action=edit
Untested sample patch

If, for example, the following command starts a jail:

# jail -n someday ...

and so does the following command:

# jail -n 1day ...

this one doesn't:

# jail -n 0day /var/empty empty 10.0.0.1 /bin/sh
jail: name cannot be numeric (unless it is the jid)

Apart from people making up stupid names for jails, this affects anyone trying
to run Docker on FreeBSD. The behavior is due to a bug in
sys/kern/kern_jail.c's detection of numeric JIDs, which dates back to 2009:

https://svnweb.freebsd.org/base/head/sys/kern/kern_jail.c?revision=285685&view=markup

> else if (*namelc == '0' || (strtoul(namelc, &p, 10) != jid && *p == '\0')))

It thinks everything that starts with a '0' is numeric, and doesn't
check that it's the only character, e.g. namelc[1] == '\0'. Untested sample
patch is attached.

-- 
You are receiving this mail because:
You are the assignee for the bug.


More information about the freebsd-bugs mailing list