Thread (68 messages) 68 messages, 6 authors, 2019-08-08

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
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help