Messages in this thread | | | From | "Eric W. Biederman" <> | Date | Fri, 25 Mar 2022 08:29:25 -0500 | Subject | Re: [PATCH 1/1] ns: Move MAX_PID_NS_LEVEL to ns_common.h, reuse it |
| |
Petr Vorel <pvorel@suse.cz> writes:
> Move MAX_PID_NS_LEVEL to ns_common.h and reuse it in check in > user_namespace.c.
What is the motivation for this change?
Is it just that there is a bare number in create_user_ns and that is a little ugly? Or is there something more motivating this?
Eric
> > Signed-off-by: Petr Vorel <pvorel@suse.cz> > --- > Hi Christian, all, > > I don't see putting MAX_PID_NS_LEVEL into ns_common.h as an elegant > solution but IMHO better than use a hardwired number or redefinition in > user_namespace.h. > > Kind regards, > Petr > > include/linux/ns_common.h | 3 +++ > include/linux/pid_namespace.h | 3 --- > kernel/user_namespace.c | 2 +- > 3 files changed, 4 insertions(+), 4 deletions(-) > > diff --git a/include/linux/ns_common.h b/include/linux/ns_common.h > index 0f1d024bd958..173fab9dadf7 100644 > --- a/include/linux/ns_common.h > +++ b/include/linux/ns_common.h > @@ -4,6 +4,9 @@ > > #include <linux/refcount.h> > > +/* MAX_PID_NS_LEVEL is needed for limiting size of 'struct pid' */ > +#define MAX_PID_NS_LEVEL 32 > + > struct proc_ns_operations; > > struct ns_common { > diff --git a/include/linux/pid_namespace.h b/include/linux/pid_namespace.h > index 07481bb87d4e..f814068012d0 100644 > --- a/include/linux/pid_namespace.h > +++ b/include/linux/pid_namespace.h > @@ -11,9 +11,6 @@ > #include <linux/ns_common.h> > #include <linux/idr.h> > > -/* MAX_PID_NS_LEVEL is needed for limiting size of 'struct pid' */ > -#define MAX_PID_NS_LEVEL 32 > - > struct fs_pin; > > struct pid_namespace { > diff --git a/kernel/user_namespace.c b/kernel/user_namespace.c > index 5481ba44a8d6..6ea6e263403d 100644 > --- a/kernel/user_namespace.c > +++ b/kernel/user_namespace.c > @@ -87,7 +87,7 @@ int create_user_ns(struct cred *new) > int ret, i; > > ret = -ENOSPC; > - if (parent_ns->level > 32) > + if (parent_ns->level > MAX_PID_NS_LEVEL) > goto fail; > > ucounts = inc_user_namespaces(parent_ns, owner);
| |