diff mbox series

lsm: Add a __counted_by() annotation to lsm_ctx.ctx

Message ID 20231221-lsm-fix-counted-by-v1-1-12cc27597cdf@kernel.org (mailing list archive)
State Superseded
Headers show
Series lsm: Add a __counted_by() annotation to lsm_ctx.ctx | expand

Commit Message

Mark Brown Dec. 21, 2023, 8:38 p.m. UTC
The ctx in struct lsm_ctx is an array of size ctx_len, tell the compiler
about this using __counted_by() where supported to improve the ability to
detect overflow issues.

Reported-by: Aishwarya TCV <aishwarya.tcv@arm.com>
Signed-off-by: Mark Brown <broonie@kernel.org>
---
 include/uapi/linux/lsm.h | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)


---
base-commit: ec4e9d630a64df500641892f4e259e8149594a99
change-id: 20231221-lsm-fix-counted-by-f9fd827e26aa

Best regards,

Comments

Paul Moore Dec. 21, 2023, 10:34 p.m. UTC | #1
On Thu, Dec 21, 2023 at 3:39 PM Mark Brown <broonie@kernel.org> wrote:
>
> The ctx in struct lsm_ctx is an array of size ctx_len, tell the compiler
> about this using __counted_by() where supported to improve the ability to
> detect overflow issues.
>
> Reported-by: Aishwarya TCV <aishwarya.tcv@arm.com>
> Signed-off-by: Mark Brown <broonie@kernel.org>
> ---
>  include/uapi/linux/lsm.h | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/include/uapi/linux/lsm.h b/include/uapi/linux/lsm.h
> index f0386880a78e..4150333d224f 100644
> --- a/include/uapi/linux/lsm.h
> +++ b/include/uapi/linux/lsm.h
> @@ -36,7 +36,7 @@ struct lsm_ctx {
>         __u64 flags;
>         __u64 len;
>         __u64 ctx_len;
> -       __u8 ctx[];
> +       __u8 ctx[] __counted_by(ctx_len);
>  };

We also now need to include stddef.h in lsm.h for the __counted_by() macro, yes?
diff mbox series

Patch

diff --git a/include/uapi/linux/lsm.h b/include/uapi/linux/lsm.h
index f0386880a78e..4150333d224f 100644
--- a/include/uapi/linux/lsm.h
+++ b/include/uapi/linux/lsm.h
@@ -36,7 +36,7 @@  struct lsm_ctx {
 	__u64 flags;
 	__u64 len;
 	__u64 ctx_len;
-	__u8 ctx[];
+	__u8 ctx[] __counted_by(ctx_len);
 };
 
 /*