Re: [PATCH security-next v3 08/29] LSM: Record LSM name in struct lsm_info

From: John Johansen
Date: Mon Oct 01 2018 - 17:14:04 EST


On 09/24/2018 05:18 PM, Kees Cook wrote:
> In preparation for making LSM selections outside of the LSMs, include
> the name of LSMs in struct lsm_info.
>
> Cc: James Morris <james.morris@xxxxxxxxxxxxx>
> Signed-off-by: Kees Cook <keescook@xxxxxxxxxxxx>

I'll leave this one until after the changes you have already discussed with Tetsuo around, END_LSM and .name

> ---
> include/linux/lsm_hooks.h | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/include/linux/lsm_hooks.h b/include/linux/lsm_hooks.h
> index 02ec717189f9..543636f18152 100644
> --- a/include/linux/lsm_hooks.h
> +++ b/include/linux/lsm_hooks.h
> @@ -2040,16 +2040,20 @@ extern void security_add_hooks(struct security_hook_list *hooks, int count,
> char *lsm);
>
> struct lsm_info {
> + const char *name; /* Populated automatically. */
> int (*init)(void);
> };
>
> extern struct lsm_info __start_lsm_info[], __end_lsm_info[];
>
> #define DEFINE_LSM(lsm) \
> + static const char __lsm_name_##lsm[] __initconst \
> + __aligned(1) = #lsm; \
> static struct lsm_info __lsm_##lsm \
> __used __section(.lsm_info.init) \
> __aligned(sizeof(unsigned long)) \
> = { \
> + .name = __lsm_name_##lsm, \
>
> #define END_LSM }
>
>