Received: by 2002:a05:6a10:2726:0:0:0:0 with SMTP id ib38csp1932638pxb; Fri, 25 Mar 2022 08:10:51 -0700 (PDT) X-Google-Smtp-Source: ABdhPJwhjIUomzvT+8ce5AOsb3KqoaciAdhFONbYf/yQcAeeZKiGts1mOLiGFMbIRpmBLSVKLO4v X-Received: by 2002:a63:d306:0:b0:34e:4330:efea with SMTP id b6-20020a63d306000000b0034e4330efeamr87042pgg.174.1648221050924; Fri, 25 Mar 2022 08:10:50 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1648221050; cv=none; d=google.com; s=arc-20160816; b=pa7MGOALzQLl+o2UmRK+sV66VgC7JII2EgAZTK0Lkv+UF9/6j2UFo1E//iWC+d7MYE RIgMAhD1wuRzUkAfPhTHwFwhSzR8T7CEPeHArZiM4twJ+edrVxOBOrtU5wWLYt9L18iD eaZM+6sKF2k8hrmX+oFc16RqOsTZftNCuxTtBfHgA7aPt178YIIHJxZqlgB96g20Eemq +z4iiryQdgmlQ8YdBZCRgQ7qs1Rti8/w1aBs7FA3Uk0awsO+c8vrsJQcsgjOBT+H8ROe AqF5bLNn+azcjKX3mSYUwJrqIQbFvShbbZOJuoeCObCQG11DYPJfuWekIPcjBdhRmUH/ hxsQ== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:in-reply-to:from :references:cc:to:content-language:subject:user-agent:mime-version :date:message-id:dkim-signature; bh=viUKcNIOMQzkCH8vtZq4foMGz5Hu37HbwCmIqK7Fk5c=; b=P+fzZHXDLureQ7dwaxirWJ+fYeD5+UtpQFg9uIN4f4P1wOqCUfOr2n+lBjbu4aUjST 5QvdVi11AaQV8eXRUgME3VCmmC27jiHPKwxkc+GdIqZ3oDxTK4JgS1rBQXlGfH4jHXsD C72Q0j9TUasjO3Vj4FINVZ46Mjw+4ikkdO2JJNP+lDrsK4maEpYkRLlCQDGblH7q5AO9 6WCEbO3D+Nvoq6uHi7aWamo+pc9srKycE6DfTq875Lv78klOnEaASTdaZYqC4SN/cnxj owUfbzrcm+0MSCmq41IM+o679G2YNzZlKaAH2SJMQ1eVRUZlD2Sa0oWOBgH3kaizocAI 3PZQ== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@digikod.net header.s=20191114 header.b=wLPLtVak; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id ik29-20020a170902ab1d00b00153b2d165absi2482434plb.435.2022.03.25.08.10.35; Fri, 25 Mar 2022 08:10:50 -0700 (PDT) Received-SPF: pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) client-ip=2620:137:e000::1:20; Authentication-Results: mx.google.com; dkim=pass header.i=@digikod.net header.s=20191114 header.b=wLPLtVak; spf=pass (google.com: domain of linux-kernel-owner@vger.kernel.org designates 2620:137:e000::1:20 as permitted sender) smtp.mailfrom=linux-kernel-owner@vger.kernel.org Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S1347028AbiCXKdv (ORCPT + 99 others); Thu, 24 Mar 2022 06:33:51 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:39642 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S1349629AbiCXKdH (ORCPT ); Thu, 24 Mar 2022 06:33:07 -0400 Received: from smtp-bc0d.mail.infomaniak.ch (smtp-bc0d.mail.infomaniak.ch [45.157.188.13]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 09B2FA0BEE for ; Thu, 24 Mar 2022 03:31:32 -0700 (PDT) Received: from smtp-2-0001.mail.infomaniak.ch (unknown [10.5.36.108]) by smtp-2-3000.mail.infomaniak.ch (Postfix) with ESMTPS id 4KPM2p55BhzMqNND; Thu, 24 Mar 2022 11:31:30 +0100 (CET) Received: from ns3096276.ip-94-23-54.eu (unknown [23.97.221.149]) by smtp-2-0001.mail.infomaniak.ch (Postfix) with ESMTPA id 4KPM2m27YJzljsTY; Thu, 24 Mar 2022 11:31:28 +0100 (CET) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/simple; d=digikod.net; s=20191114; t=1648117890; bh=07InghFBQQsMZIwhzNxbiMPO0RvgGZQgEQaSuD90ZRQ=; h=Date:Subject:To:Cc:References:From:In-Reply-To:From; b=wLPLtVakEdY3ntCVFa9PR0CP5WrSV7xM8w1zvacrOnr9A2aY8r+oZton40dAdqJjg ZSEJFmOmQTFYG9qt6Eg4a0KEcBChePGf7b0iCeCkzVrkLSpwSfCz7k0h/zYT5BHrBn stZ01j3MOm4b19vDHne2l6nYVK085p2lLPCxdBmA= Message-ID: Date: Thu, 24 Mar 2022 11:31:32 +0100 MIME-Version: 1.0 User-Agent: Subject: Re: [PATCH v1 06/11] landlock: Add support for file reparenting with LANDLOCK_ACCESS_FS_REFER Content-Language: en-US To: Paul Moore Cc: James Morris , "Serge E . Hallyn" , Al Viro , Jann Horn , Kees Cook , Konstantin Meskhidze , Shuah Khan , linux-doc@vger.kernel.org, linux-fsdevel@vger.kernel.org, linux-kernel@vger.kernel.org, linux-security-module@vger.kernel.org References: <20220221212522.320243-1-mic@digikod.net> <20220221212522.320243-7-mic@digikod.net> <588e0fec-6a45-db81-e411-ae488b29e533@digikod.net> From: =?UTF-8?Q?Micka=c3=abl_Sala=c3=bcn?= In-Reply-To: <588e0fec-6a45-db81-e411-ae488b29e533@digikod.net> Content-Type: text/plain; charset=UTF-8; format=flowed Content-Transfer-Encoding: 8bit X-Spam-Status: No, score=-2.8 required=5.0 tests=BAYES_00,DKIM_SIGNED, DKIM_VALID,DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_LOW, RCVD_IN_MSPIKE_H5,RCVD_IN_MSPIKE_WL,SPF_HELO_NONE,SPF_PASS, T_SCC_BODY_TEXT_LINE autolearn=ham autolearn_force=no version=3.4.6 X-Spam-Checker-Version: SpamAssassin 3.4.6 (2021-04-09) on lindbergh.monkeyblade.net Precedence: bulk List-ID: X-Mailing-List: linux-kernel@vger.kernel.org On 17/03/2022 13:04, Mickaël Salaün wrote: > > On 17/03/2022 02:26, Paul Moore wrote: [...] >>> @@ -269,16 +270,188 @@ static inline bool is_nouser_or_private(const >>> struct dentry *dentry) >>> >>> unlikely(IS_PRIVATE(d_backing_inode(dentry)))); >>>   } >>> >>> -static int check_access_path(const struct landlock_ruleset *const >>> domain, >>> -               const struct path *const path, >>> +static inline access_mask_t get_handled_accesses( >>> +               const struct landlock_ruleset *const domain) >>> +{ >>> +       access_mask_t access_dom = 0; >>> +       unsigned long access_bit; >> >> Would it be better to declare @access_bit as an access_mask_t type? >> You're not using any macros like for_each_set_bit() in this function >> so I believe it should be safe. > > Right, I'll change that. Well, thinking about it again, access_bit is not an access mask but an index in such mask. access_mask_t gives enough space for such index but it is definitely not the right semantic. The best type should be size_t, but I prefer to stick to unsigned long (used for size_t anyway) for consistency with the other access_bit variable types. There is no need to use for_each_set_bit() here now but that could change, and I prefer to do my best to prevent future issues. ;) Anyway, I guess the compiler can optimize such code.