svn commit: r339411 - stable/11/sys/kern
Julian Elischer
julian at freebsd.org
Thu Oct 18 22:14:50 UTC 2018
On 17/10/18 9:17 am, Jamie Gritton wrote:
> Author: jamie
> Date: Wed Oct 17 16:17:57 2018
> New Revision: 339411
> URL: https://svnweb.freebsd.org/changeset/base/339411
>
> Log:
> MFC r339211:
>
> Fix the test prohibiting jails from sharing IP addresses.
>
> It's not supposed to be legal for two jails to contain the same IP address,
> unless both jails contain only that one address. This is the behavior
> documented in jail(8), and is there to prevent confusion when multiple
> jails are listening on IADDR_ANY.
>
> VIMAGE jails (now the default for GENERIC kernels) test this correctly,
> but non-VIMAGE jails have been performing an incomplete test when nested
> jails are used.
I think VIMAGE Jails should be able to have the same address
optionally.. who says they are even in the same universe?
>
> Modified:
> stable/11/sys/kern/kern_jail.c
> Directory Properties:
> stable/11/ (props changed)
>
> Modified: stable/11/sys/kern/kern_jail.c
> ==============================================================================
> --- stable/11/sys/kern/kern_jail.c Wed Oct 17 16:17:56 2018 (r339410)
> +++ stable/11/sys/kern/kern_jail.c Wed Oct 17 16:17:57 2018 (r339411)
> @@ -1411,11 +1411,12 @@ kern_jail_set(struct thread *td, struct uio *optuio, i
> * there is a duplicate on a jail with more than one
> * IP stop checking and return error.
> */
> - tppr = ppr;
> #ifdef VIMAGE
> - for (; tppr != &prison0; tppr = tppr->pr_parent)
> + for (tppr = ppr; tppr != &prison0; tppr = tppr->pr_parent)
> if (tppr->pr_flags & PR_VNET)
> break;
> +#else
> + tppr = &prison0;
> #endif
> FOREACH_PRISON_DESCENDANT(tppr, tpr, descend) {
> if (tpr == pr ||
> @@ -1478,11 +1479,12 @@ kern_jail_set(struct thread *td, struct uio *optuio, i
> }
> }
> /* Check for conflicting IP addresses. */
> - tppr = ppr;
> #ifdef VIMAGE
> - for (; tppr != &prison0; tppr = tppr->pr_parent)
> + for (tppr = ppr; tppr != &prison0; tppr = tppr->pr_parent)
> if (tppr->pr_flags & PR_VNET)
> break;
> +#else
> + tppr = &prison0;
> #endif
> FOREACH_PRISON_DESCENDANT(tppr, tpr, descend) {
> if (tpr == pr ||
>
>
More information about the svn-src-stable
mailing list