Hi:
In security/integrity/ima/ima_main.c ima_file_mmap() called by
security_file_mmap(), it depend on the return value of
ima_file_mmap(), not always return 0. see also in ima_bprm_check().
Signed-off-by: wzt <[email protected]>
diff --git a/security/integrity/ima/ima_main.c
b/security/integrity/ima/ima_main.c
index 294b005..705a991 100644
--- a/security/integrity/ima/ima_main.c
+++ b/security/integrity/ima/ima_main.c
@@ -271,7 +271,7 @@ int ima_file_mmap(struct file *file, unsigned long prot)
if (prot & PROT_EXEC)
rc = process_measurement(file, file->f_dentry->d_name.name,
MAY_EXEC, FILE_MMAP);
- return 0;
+ return rc;
}
/**
@@ -293,7 +293,7 @@ int ima_bprm_check(struct linux_binprm *bprm)
rc = process_measurement(bprm->file, bprm->filename,
MAY_EXEC, BPRM_CHECK);
- return 0;
+ return rc;
}
On Mon, 2010-02-08 at 15:00 +0800, wzt wzt wrote:
> Hi:
> In security/integrity/ima/ima_main.c ima_file_mmap() called by
> security_file_mmap(), it depend on the return value of
> ima_file_mmap(), not always return 0. see also in ima_bprm_check().
>
>
> Signed-off-by: wzt <[email protected]>
>
> diff --git a/security/integrity/ima/ima_main.c
> b/security/integrity/ima/ima_main.c
> index 294b005..705a991 100644
> --- a/security/integrity/ima/ima_main.c
> +++ b/security/integrity/ima/ima_main.c
> @@ -271,7 +271,7 @@ int ima_file_mmap(struct file *file, unsigned long prot)
> if (prot & PROT_EXEC)
> rc = process_measurement(file, file->f_dentry->d_name.name,
> MAY_EXEC, FILE_MMAP);
> - return 0;
> + return rc;
> }
>
> /**
> @@ -293,7 +293,7 @@ int ima_bprm_check(struct linux_binprm *bprm)
>
> rc = process_measurement(bprm->file, bprm->filename,
> MAY_EXEC, BPRM_CHECK);
> - return 0;
> + return rc;
> }
nack. Sorry, we're not at the point where we can enforce integrity. The
return code will eventually be based on measurement appraisal.
Mimi