Received: by 2002:ac0:bc90:0:0:0:0:0 with SMTP id a16csp3507329img; Mon, 25 Mar 2019 11:41:21 -0700 (PDT) X-Google-Smtp-Source: APXvYqwQ0ZnvE9EGhlJn6IWTV+PIt+5Oo2vBoUzBQszoMjbUXZv7Sh2CY6hGdh0aQ9wIn5kGGaEI X-Received: by 2002:a17:902:8ec1:: with SMTP id x1mr15507321plo.328.1553539280914; Mon, 25 Mar 2019 11:41:20 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1553539280; cv=none; d=google.com; s=arc-20160816; b=QqYfVFeaqREdAAoie/ajAomoTH7ZftlsYv4jdGzGMzgPtdpX3oHX1YU7Euo2tlhRow XZ3Ut1t9qsDZKXgV6CxlcQ7reutiTh5h7Tl7VEI1++FOzC5I2mIwxqoaOhyGaUBz3JI3 1l1DQ8aFsiInFbFNhf1whpXzUfWQyhL9bRH6SkNOnDYzdxwmpiwfb9AzfRzdrkEilabN Envn0zN/Hsd5REKGIkWuXm0AUUkDdyFILJoyMbv6vE3UYIi8tNKmOe1OlvtEAwzdpXjJ 5+dt+0ry8YgSLJxxiW83kpwi8inUTpzyRYX0ySdscFvmF13WZgIKCbS2Yfdxdo+hkljc 7RYQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:sender:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:dkim-signature; bh=x45bUFEz5McTWL0nkxEqH4VoXD4ICR3xYooNMEuLgZ4=; b=EH53I2YtND80tYRexYvK852YNGBygM0PXtXQCmtK4z3Ga3jmI2SVOWfr9+4/MoS6Vz oHaZIa6xEjp6B1Fiu+oIw2tjVx3W055ryJ5qU3U26FJePcz7IR/NJpXLdVYYMV2Zz+OO QOogaFfT/VYRcCH+zK4BD7lqNO25Xv36l3jwRcimR1R6OT1jCaTmFe4As92xFIp8xYak +5eOOE4hAplIVMxYWuPqgJJUgC3ZzqSR117KWGVLHqSV4BNIK2yOhZVigWRqxgmkgr2F k+Rc25eWEE2Pdspfsx1q5IWKCafc6gV2xPPBCs04z6OjXEktn7zUWHFeh+PC6OHrU3sq JTfg== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=uxddqbsZ; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Return-Path: Received: from vger.kernel.org (vger.kernel.org. [209.132.180.67]) by mx.google.com with ESMTP id e8si14331304pga.19.2019.03.25.11.41.05; Mon, 25 Mar 2019 11:41:20 -0700 (PDT) Received-SPF: pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) client-ip=209.132.180.67; Authentication-Results: mx.google.com; dkim=pass header.i=@google.com header.s=20161025 header.b=uxddqbsZ; spf=pass (google.com: best guess record for domain of linux-kernel-owner@vger.kernel.org designates 209.132.180.67 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org; dmarc=pass (p=REJECT sp=REJECT dis=NONE) header.from=google.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1730142AbfCYSjw (ORCPT + 99 others); Mon, 25 Mar 2019 14:39:52 -0400 Received: from mail-ot1-f68.google.com ([209.85.210.68]:40567 "EHLO mail-ot1-f68.google.com" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1729761AbfCYSjw (ORCPT ); Mon, 25 Mar 2019 14:39:52 -0400 Received: by mail-ot1-f68.google.com with SMTP id t8so3737078otp.7 for ; Mon, 25 Mar 2019 11:39:52 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=20161025; h=mime-version:references:in-reply-to:from:date:message-id:subject:to :cc; bh=x45bUFEz5McTWL0nkxEqH4VoXD4ICR3xYooNMEuLgZ4=; b=uxddqbsZ4KHUDBHScWt0/qgbEE35hYi1SkKyH6CmdxaYxaHbsXJVvj0/cQfwdrAePG +or3uM0nAscQpkVpgfHRn5/Wk4nT188wjHwUFL7oC8X9KSg/BeSCqIRYbnaEYlOKxqcc fvVbwdGa6GIPdqlyaHpr4gOj0Hnx7fN6E0O4fh0pYVKDDKDpOViNdzXG+cWdVQZcUX9K 9O+uYd1Vko4E4MedkjkdZ1770bAw68aLP8WUJ64hHViYEYeE8pHehSjOoFTELss9bmkL qW1LXh1PO/HtAxGZuml0P6thwhWnh6QeUbFTJZCPQDnLrf3toYZ5qzPn/ghsQXx9s6Mm RP/A== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20161025; h=x-gm-message-state:mime-version:references:in-reply-to:from:date :message-id:subject:to:cc; bh=x45bUFEz5McTWL0nkxEqH4VoXD4ICR3xYooNMEuLgZ4=; b=n0YWuApQZ4weuvunPHjDev6UCXq7Wvf+JvzMdbxxPg1Q7kDP95fU+u2MWFOqaoHGWu UC4dsi5ilOMeWhMp8l1C4dV9vtHfuAv1BuJ+gjMybAuG9pscGgStMf5pVkRNbGyZo5vh WApDGNgFDZyAoPfctm8Es7NMM2nGIWWxy2EAOn4pRcpF4eluGdrm1aPFUKjWLNDqAQA0 quX8anpw52ctPSijB47Ysyk4Rf/R17+DRsjv9ZLkjR1A5VN2Rf0RzS4HmJu2a1W3ULhG 9yJ0VRkT83FVlplQTlMHFBsCuKMhGrKgKfGaSMcLs9Bb8/gB8OJZVqcl+I7Kd/jom+9m Abcg== X-Gm-Message-State: APjAAAVZ8z3i/cLw2M7Dr0mm/hRXlamAQ2/V/9QWMwi8daj8aNhtcEGl D2X/snYXfpaJvtkxMvNuKojAwMx5hZXrPptmYM4ZMQ== X-Received: by 2002:a9d:309:: with SMTP id 9mr18543319otv.230.1553539191640; Mon, 25 Mar 2019 11:39:51 -0700 (PDT) MIME-Version: 1.0 References: <20190325162052.28987-1-christian@brauner.io> <20190325162052.28987-4-christian@brauner.io> In-Reply-To: <20190325162052.28987-4-christian@brauner.io> From: Jann Horn Date: Mon, 25 Mar 2019 19:39:25 +0100 Message-ID: Subject: Re: [PATCH 3/4] signal: support pidctl() with pidfd_send_signal() To: Christian Brauner Cc: Konstantin Khlebnikov , Andy Lutomirski , David Howells , "Serge E. Hallyn" , "Eric W. Biederman" , Linux API , kernel list , Arnd Bergmann , Kees Cook , Alexey Dobriyan , Thomas Gleixner , Michael Kerrisk-manpages , bl0pbl33p@gmail.com, "Dmitry V. Levin" , Andrew Morton , Oleg Nesterov , Nagarathnam Muthusamy , cyphar@cyphar.com, Al Viro , "Joel Fernandes (Google)" , Daniel Colascione Content-Type: text/plain; charset="UTF-8" Sender: linux-kernel-owner@vger.kernel.org Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On Mon, Mar 25, 2019 at 5:21 PM Christian Brauner 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"?