Thread (42 messages) 42 messages, 9 authors, 2019-03-26

Re: [PATCH 3/4] signal: support pidctl() with pidfd_send_signal()

From: Jann Horn <jannh@google.com>
Date: 2019-03-25 18:39:54
Also in: lkml

On Mon, Mar 25, 2019 at 5:21 PM Christian Brauner [off-list ref] wrote:
Let pidfd_send_signal() use pidfds retrieved via pidctl(). With this patch
pidfd_send_signal() becomes independent of procfs. This fullfils the
request made when we merged the pidfd_send_signal() patchset. The
pidfd_send_signal() syscall is now always available allowing for it to be
used by users without procfs mounted or even users without procfs support
compiled into the kernel.
[...]
 static bool access_pidfd_pidns(struct pid *pid)
 {
+       int ret;
        struct pid_namespace *active = task_active_pid_ns(current);
        struct pid_namespace *p = ns_of_pid(pid);

-       for (;;) {
-               if (!p)
-                       return false;
-               if (p == active)
-                       break;
-               p = p->parent;
-       }
+       ret = pidnscmp(active, p);
+       if (ret < 0)
+               return false;

        return true;
 }
Nit, if we keep this function: "if (...) return false; return true;"
seems like an antipattern to me. How about "return ret >= 0", or even
"return pidnscmp(active, p) >= 0"?
Keyboard shortcuts
hback out one level
jnext message in thread
kprevious message in thread
ldrill in
Escclose help / fold thread tree
?toggle this help