Date: Sun, 29 Nov 2015 18:13:10 +0000 From: bugzilla-noreply@freebsd.org To: freebsd-bugs@FreeBSD.org Subject: [Bug 204897] [jail] Jail names cannot start with a '0', resulting in 'jail: name cannot be numeric (unless it is the jid)' Message-ID: <bug-204897-8@https.bugs.freebsd.org/bugzilla/>
next in thread | raw e-mail | index | archive | help
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@FreeBSD.org Reporter: doublef.mobile@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.
Want to link to this message? Use this URL: <https://mail-archive.FreeBSD.org/cgi/mid.cgi?bug-204897-8>
