Re: [PATCH] LSM: Avoid warnings about potentially unused hook variables

From: Paul Moore
Date: Wed Oct 13 2021 - 13:53:43 EST


On Wed, Oct 13, 2021 at 1:31 PM Kees Cook <keescook@xxxxxxxxxxxx> wrote:
>
> Building with W=1 shows many unused const variable warnings. These can
> be silenced, as we're well aware of their being potentially unused:
>
> ./include/linux/lsm_hook_defs.h:36:18: error: 'ptrace_access_check_default' defined but not used [-Werror=unused-const-variable=]
> 36 | LSM_HOOK(int, 0, ptrace_access_check, struct task_struct *child,
> | ^~~~~~~~~~~~~~~~~~~
> security/security.c:706:32: note: in definition of macro 'LSM_RET_DEFAULT'
> 706 | #define LSM_RET_DEFAULT(NAME) (NAME##_default)
> | ^~~~
> security/security.c:711:9: note: in expansion of macro 'DECLARE_LSM_RET_DEFAULT_int'
> 711 | DECLARE_LSM_RET_DEFAULT_##RET(DEFAULT, NAME)
> | ^~~~~~~~~~~~~~~~~~~~~~~~
> ./include/linux/lsm_hook_defs.h:36:1: note: in expansion of macro 'LSM_HOOK'
> 36 | LSM_HOOK(int, 0, ptrace_access_check, struct task_struct *child,
> | ^~~~~~~~
>
> Cc: James Morris <jmorris@xxxxxxxxx>
> Cc: "Serge E. Hallyn" <serge@xxxxxxxxxx>
> Cc: Paul Moore <paul@xxxxxxxxxxxxxx>
> Cc: Casey Schaufler <casey@xxxxxxxxxxxxxxxx>
> Cc: KP Singh <kpsingh@xxxxxxxxxxxx>
> Cc: linux-security-module@xxxxxxxxxxxxxxx
> Reported-by: kernel test robot <lkp@xxxxxxxxx>
> Link: https://lore.kernel.org/linux-mm/202110131608.zms53FPR-lkp@xxxxxxxxx/
> Fixes: 98e828a0650f ("security: Refactor declaration of LSM hooks")
> Signed-off-by: Kees Cook <keescook@xxxxxxxxxxxx>
> ---
> security/security.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)

Looks reasonable to me, thanks Kees. Unless James wants to pick this
up for the security tree, I can pull this into the SElinux tree with
the io_uring change which is causing the testing robot to complain.

Acked-by: Paul Moore <paul@xxxxxxxxxxxxxx>

> diff --git a/security/security.c b/security/security.c
> index 9ffa9e9c5c55..462f14354c2c 100644
> --- a/security/security.c
> +++ b/security/security.c
> @@ -706,7 +706,7 @@ static int lsm_superblock_alloc(struct super_block *sb)
> #define LSM_RET_DEFAULT(NAME) (NAME##_default)
> #define DECLARE_LSM_RET_DEFAULT_void(DEFAULT, NAME)
> #define DECLARE_LSM_RET_DEFAULT_int(DEFAULT, NAME) \
> - static const int LSM_RET_DEFAULT(NAME) = (DEFAULT);
> + static const int __maybe_unused LSM_RET_DEFAULT(NAME) = (DEFAULT);
> #define LSM_HOOK(RET, DEFAULT, NAME, ...) \
> DECLARE_LSM_RET_DEFAULT_##RET(DEFAULT, NAME)
>
> --
> 2.30.2

--
paul moore
www.paul-moore.com