From mboxrd@z Thu Jan 1 00:00:00 1970 From: ebiederm-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org (Eric W. Biederman) Subject: Re: [PATCH 02/10] userns: Add per user namespace sysctls. Date: Wed, 20 Jul 2016 10:55:55 -0500 Message-ID: <87shv49ud0.fsf@x220.int.ebiederm.org> References: <8737n5dscy.fsf@x220.int.ebiederm.org> <20160720012138.7894-1-ebiederm@xmission.com> <20160720012138.7894-2-ebiederm@xmission.com> <20160720051226.GC16885@mail.hallyn.com> Mime-Version: 1.0 Content-Type: text/plain; charset="us-ascii" Content-Transfer-Encoding: 7bit Return-path: In-Reply-To: <20160720051226.GC16885-7LNsyQBKDXoIagZqoN9o3w@public.gmane.org> (Serge E. Hallyn's message of "Wed, 20 Jul 2016 00:12:26 -0500") List-Unsubscribe: , List-Archive: List-Post: List-Help: List-Subscribe: , Sender: containers-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org Errors-To: containers-bounces-cunTk1MwBs9QetFLy7KEm3xJsTq8ys+cHZ5vskTnxNA@public.gmane.org To: "Serge E. Hallyn" Cc: Kees Cook , Linux Containers , Andy Lutomirski , Seth Forshee , Nikolay Borisov , Jann Horn List-Id: containers.vger.kernel.org "Serge E. Hallyn" writes: > Quoting Eric W. Biederman (ebiederm-aS9lmoZGLiVWk0Htik3J/w@public.gmane.org): >> +static bool setup_userns_sysctls(struct user_namespace *ns) >> +{ >> +#ifdef CONFIG_SYSCTL >> + struct ctl_table *tbl; >> + setup_sysctl_set(&ns->set, &set_root, set_is_seen); >> + tbl = kmemdup(userns_table, sizeof(userns_table), GFP_KERNEL); >> + if (tbl) { >> + ns->sysctls = __register_sysctl_table(&ns->set, "userns", tbl); >> + } > > What happens if tbl is null due to oom? Would it be better to just > return false in that case here? ns->sysctls is initialized to NULL and kfree(NULL) is a noop. So I don't see any problems. I admit it isn't a usual pattern for error handling. >> + if (!ns->sysctls) { >> + kfree(tbl); >> + retire_sysctl_set(&ns->set); >> + return false; >> + } >> +#endif >> + return true; >> +} Eric