Re: [PATCHv5 01/37] ns: Introduce Time Namespace
flat view
From: Dmitry Safonov <hidden>
Date: 2019-08-01 23:46:48
Also in:
lkml
Hi Andy, Thank you for the review, On 8/1/19 6:29 AM, Andy Lutomirski wrote:
On Mon, Jul 29, 2019 at 2:58 PM Dmitry Safonov [off-list ref] wrote:quoted
From: Andrei Vagin <redacted> Time Namespace isolates clock values.quoted
+static int timens_install(struct nsproxy *nsproxy, struct ns_common *new) +{ + struct time_namespace *ns = to_time_ns(new); + + if (!thread_group_empty(current)) + return -EINVAL;You also need to check for other users of the mm.
Oops. It seems like, if the check was
if (!current_is_single_threaded())
return -EUSERS;
instead of thread_group_empty(current), it would address the concerns
from 23/37 and 25/37 patches, too?
quoted
+ + if (!ns_capable(ns->user_ns, CAP_SYS_ADMIN) || + !ns_capable(current_user_ns(), CAP_SYS_ADMIN)) + return -EPERM; + + get_time_ns(ns); + get_time_ns(ns); + put_time_ns(nsproxy->time_ns); + put_time_ns(nsproxy->time_ns_for_children); + nsproxy->time_ns = ns; + nsproxy->time_ns_for_children = ns; + ns->initialized = true;I really really wish that setns() took an explicit flag for "change now" or "change for children", since the semantics are different. Oh well.
Thanks,
Dmitry