apparmor: Use pointer to struct aa_label for lbs_cred

Message ID 20221020023621.223121-1-xiujianfeng@huawei.com
State New
Headers
Series apparmor: Use pointer to struct aa_label for lbs_cred |

Commit Message

Xiu Jianfeng Oct. 20, 2022, 2:36 a.m. UTC
  According to the implementations of cred_label and set_cred_label, we
should use pointer to struct aa_label for lbs_cred instead of struct
aa_task_ctx, this patch fix it.

Fixes: bbd3662a8348 ("Infrastructure management of the cred security blob")
Signed-off-by: Xiu Jianfeng <xiujianfeng@huawei.com>
---
 security/apparmor/lsm.c | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)
  

Comments

Casey Schaufler Oct. 20, 2022, 1:01 p.m. UTC | #1
On 10/19/2022 7:36 PM, Xiu Jianfeng wrote:
> According to the implementations of cred_label and set_cred_label, we
> should use pointer to struct aa_label for lbs_cred instead of struct
> aa_task_ctx, this patch fix it.
>
> Fixes: bbd3662a8348 ("Infrastructure management of the cred security blob")
> Signed-off-by: Xiu Jianfeng <xiujianfeng@huawei.com>
> ---
>  security/apparmor/lsm.c | 2 +-
>  1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/security/apparmor/lsm.c b/security/apparmor/lsm.c
> index f56070270c69..fd2f57972a17 100644
> --- a/security/apparmor/lsm.c
> +++ b/security/apparmor/lsm.c
> @@ -1197,7 +1197,7 @@ static int apparmor_inet_conn_request(const struct sock *sk, struct sk_buff *skb
>   * The cred blob is a pointer to, not an instance of, an aa_task_ctx.

If your premise is true you'll want to fix this comment as well as the code.

>   */
>  struct lsm_blob_sizes apparmor_blob_sizes __lsm_ro_after_init = {
> -	.lbs_cred = sizeof(struct aa_task_ctx *),
> +	.lbs_cred = sizeof(struct aa_label *),
>  	.lbs_file = sizeof(struct aa_file_ctx),
>  	.lbs_task = sizeof(struct aa_task_ctx),
>  };
  

Patch

diff --git a/security/apparmor/lsm.c b/security/apparmor/lsm.c
index f56070270c69..fd2f57972a17 100644
--- a/security/apparmor/lsm.c
+++ b/security/apparmor/lsm.c
@@ -1197,7 +1197,7 @@  static int apparmor_inet_conn_request(const struct sock *sk, struct sk_buff *skb
  * The cred blob is a pointer to, not an instance of, an aa_task_ctx.
  */
 struct lsm_blob_sizes apparmor_blob_sizes __lsm_ro_after_init = {
-	.lbs_cred = sizeof(struct aa_task_ctx *),
+	.lbs_cred = sizeof(struct aa_label *),
 	.lbs_file = sizeof(struct aa_file_ctx),
 	.lbs_task = sizeof(struct aa_task_ctx),
 };