Received: by 2002:a05:6358:11c7:b0:104:8066:f915 with SMTP id i7csp1431589rwl; Wed, 29 Mar 2023 18:14:19 -0700 (PDT) X-Google-Smtp-Source: AKy350YF3oZfVusV0vvVIahAO+CBjitChJ5Y5BB1Z25g12gisLOGI26eBtNiQ/xUb9oKFZ0utJy+ X-Received: by 2002:aa7:c490:0:b0:4fa:315a:cb55 with SMTP id m16-20020aa7c490000000b004fa315acb55mr22714948edq.21.1680138859287; Wed, 29 Mar 2023 18:14:19 -0700 (PDT) ARC-Seal: i=1; a=rsa-sha256; t=1680138859; cv=none; d=google.com; s=arc-20160816; b=HIH7ejMBBl6hQMuS5/pr8J8TCAKx56ee4WX81eWnA1NgjCu+It4RmHDYEVSBISHjLk 6k8u8q3St8cZLdi6kUq9Z+6HOPaTNCaCstqC8vvcysDvM4Cw7F02rpRREcw54I0GIdwG ToFbl4L7tJj6CR0xbjXgaGK2CL+WY2BzuDHoWv7+rQ49W9JKv9RU/wBqi/HdhrbzyKmb hGCsdWEMLPryeiTdkPJ/Aa2/nDe7ll0fGStq5HYe9L8mp+DqTFX65I82jl7jvvwqMWhg n3NaaRKV/PDIVh4OWZy8619hQ1tzzrJ6mW16YAtEYgtV358nygXu6olZX66peKkH+gjO GgCg== ARC-Message-Signature: i=1; a=rsa-sha256; c=relaxed/relaxed; d=google.com; s=arc-20160816; h=list-id:precedence:content-transfer-encoding:cc:to:subject :message-id:date:from:in-reply-to:references:mime-version :dkim-signature; bh=trHb4ZOG7XU5ZjiWJc1P83x2prz9WeqvxotCOi1K6Ow=; b=nYbRcLRb7su13ETY1vL+9XuDa4uTqxPkppXEWRCrqnKsNEHKOsoBgOoMVWf7gRnZWD myVL+8DUc2u5p0mZwgpuPoIvI/HLziJbxiBAJ5xxt4Ik3q6NKiOoHGs7bKGduWgVS1Of 4ZyofyhCflfiANRbLj6P/7jYdScxOzEWZCSNfus+o0ats6a7bvsUdrN1qGYkw50/pvwE JwyWUHIRCPBVhM4CXFpJ8VIvu1LGmi169tR4Y4K+Z8Riu8FlsLDRuBVlRK88KbXLsNej vScmbHgNctd1SmCmkuFzt8FynbmUPt/qTUSgEehYvmKnk7OlHX3zQ4OTRxUk39SQ0tVh oXAw== ARC-Authentication-Results: i=1; mx.google.com; dkim=pass header.i=@paul-moore.com header.s=google header.b="DS/uhgZT"; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=paul-moore.com Return-Path: Received: from out1.vger.email (out1.vger.email. [2620:137:e000::1:20]) by mx.google.com with ESMTP id q24-20020aa7da98000000b00501e6004952si20056049eds.456.2023.03.29.18.13.53; Wed, 29 Mar 2023 18:14:19 -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=@paul-moore.com header.s=google header.b="DS/uhgZT"; 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; dmarc=pass (p=NONE sp=NONE dis=NONE) header.from=paul-moore.com Received: (majordomo@vger.kernel.org) by vger.kernel.org via listexpand id S229783AbjC3BKv (ORCPT + 99 others); Wed, 29 Mar 2023 21:10:51 -0400 Received: from lindbergh.monkeyblade.net ([23.128.96.19]:37034 "EHLO lindbergh.monkeyblade.net" rhost-flags-OK-OK-OK-OK) by vger.kernel.org with ESMTP id S229529AbjC3BKt (ORCPT ); Wed, 29 Mar 2023 21:10:49 -0400 Received: from mail-yw1-x1133.google.com (mail-yw1-x1133.google.com [IPv6:2607:f8b0:4864:20::1133]) by lindbergh.monkeyblade.net (Postfix) with ESMTPS id 38FB05B92 for ; Wed, 29 Mar 2023 18:10:42 -0700 (PDT) Received: by mail-yw1-x1133.google.com with SMTP id 00721157ae682-53d277c1834so326698797b3.10 for ; Wed, 29 Mar 2023 18:10:42 -0700 (PDT) DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=paul-moore.com; s=google; t=1680138641; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:from:to:cc:subject:date :message-id:reply-to; bh=trHb4ZOG7XU5ZjiWJc1P83x2prz9WeqvxotCOi1K6Ow=; b=DS/uhgZThWHoOTi9eBksq5fEsaIGz7ngHca8dbA8p8bF7mQD8TH7k9rtmQR8pc9/kw 5csXEDiz0NNIXY4cG7rj4I9hXaTbcEkzCKr0l6Lk57uogUjfT5DFjLOvT8J93GlHkU9F QqRveaP0eHdQ3h234e/3IDC0YpBf09gnLVp1WVFmVjYkdh5djkRH7Fk8FW/kAvel6Eh4 uWKfYMvJ0E7cv9W3N8nWb3MT3Wbml+pU0ZZVzREjvQpTfHgMf9nUy8YAgJ35Tg/n7B9m Fq2RsVdlSubBCk3ntpmHELGXrkhlGRz8gsUiPD9WQUDIxl18CKGmABMgjVoLYiv8o8VW rjJA== X-Google-DKIM-Signature: v=1; a=rsa-sha256; c=relaxed/relaxed; d=1e100.net; s=20210112; t=1680138641; h=content-transfer-encoding:cc:to:subject:message-id:date:from :in-reply-to:references:mime-version:x-gm-message-state:from:to:cc :subject:date:message-id:reply-to; bh=trHb4ZOG7XU5ZjiWJc1P83x2prz9WeqvxotCOi1K6Ow=; b=0KRD5j1bXxR3dBWgxU014uvPnYOVTElPmQ4NYquxN9FBsxXO/ocfmHdu/8qC7rIcBb kzk4v4OdVmWCQ+Q8dfDosTfnabxSqUuqY+QWxadGcIMYAbObeYOMdkr/m0zw/PF0G/T8 dVAAntGqepSv43Sx2WR5Rox20j+yPVOqPt48njoXJiBa+kXJuwPa2KkWocuwVV/UbVzA 4j1yA6JR6m39WGv8dFPK9QVE05u09RIfRwKJ2DQzSy+aEc85Xw9RLTwHjA+w4+p/HApo PGZoKJTfLqu639sV6BEs7M2gSFvi9/zPJp7QjUZXF6/D3bGoLjxb6jvdi/P6wH1i20zI vzZQ== X-Gm-Message-State: AAQBX9ewkTVhU6JsGldObjKXMYx57czvjyVh9NKNNhudvj+eZodlN1fQ jIpXR149RBq384aPFZIDRa30qRiEIkEdcbyEv+kf X-Received: by 2002:a81:c406:0:b0:546:8e4:703f with SMTP id j6-20020a81c406000000b0054608e4703fmr4919710ywi.8.1680138641366; Wed, 29 Mar 2023 18:10:41 -0700 (PDT) MIME-Version: 1.0 References: <20230315224704.2672-1-casey@schaufler-ca.com> <20230315224704.2672-3-casey@schaufler-ca.com> In-Reply-To: <20230315224704.2672-3-casey@schaufler-ca.com> From: Paul Moore Date: Wed, 29 Mar 2023 21:10:30 -0400 Message-ID: Subject: Re: [PATCH v7 02/11] LSM: Maintain a table of LSM attribute data To: Casey Schaufler Cc: linux-security-module@vger.kernel.org, jmorris@namei.org, keescook@chromium.org, john.johansen@canonical.com, penguin-kernel@i-love.sakura.ne.jp, stephen.smalley.work@gmail.com, linux-kernel@vger.kernel.org, linux-api@vger.kernel.org, mic@digikod.net Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Spam-Status: No, score=-0.2 required=5.0 tests=DKIM_SIGNED,DKIM_VALID, DKIM_VALID_AU,DKIM_VALID_EF,RCVD_IN_DNSWL_NONE,SPF_HELO_NONE,SPF_PASS autolearn=unavailable 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 Wed, Mar 15, 2023 at 6:47=E2=80=AFPM Casey Schaufler wrote: > > As LSMs are registered add their lsm_id pointers to a table. > This will be used later for attribute reporting. > > Determine the number of possible security modules based on > their respective CONFIG options. This allows the number to be > known at build time. This allows data structures and tables > to use the constant. > > Signed-off-by: Casey Schaufler > --- > include/linux/security.h | 2 ++ > security/security.c | 44 ++++++++++++++++++++++++++++++++-------- > 2 files changed, 38 insertions(+), 8 deletions(-) ... > diff --git a/security/security.c b/security/security.c > index 58828a326024..aa84b1cf4253 100644 > --- a/security/security.c > +++ b/security/security.c > @@ -513,6 +531,16 @@ void __init security_add_hooks(struct security_hook_= list *hooks, int count, > { > int i; > > + /* > + * A security module may call security_add_hooks() more > + * than once. Landlock is one such case. > + */ > + if (lsm_active_cnt =3D=3D 0 || lsm_idlist[lsm_active_cnt - 1] != =3D lsmid) > + lsm_idlist[lsm_active_cnt++] =3D lsmid; > + > + if (lsm_active_cnt > LSM_COUNT) > + panic("%s Too many LSMs registered.\n", __func__); In addition to the fixes needed to resolve the bug identified by the kernel test robot, I think it might be wise to do the @lsm_active_cnt check *before* potentially adding it to the @lsm_idlist array. > for (i =3D 0; i < count; i++) { > hooks[i].lsmid =3D lsmid; > hlist_add_tail_rcu(&hooks[i].list, hooks[i].head); > -- > 2.39.2 -- paul-moore.com