On Tue, Dec 08, 2015 at 01:01:22PM -0500, Mimi Zohar wrote:
> diff --git a/drivers/base/firmware_class.c b/drivers/base/firmware_class.c
> index 8524450..dcd902f 100644
> --- a/drivers/base/firmware_class.c
> +++ b/drivers/base/firmware_class.c
> @@ -29,6 +29,7 @@
>  #include <linux/syscore_ops.h>
>  #include <linux/reboot.h>
>  #include <linux/security.h>
> +#include <linux/ima.h>
>  
>  #include <generated/utsrelease.h>
>  
> @@ -305,11 +306,17 @@ static int fw_read_file_contents(struct file *file, 
> struct firmware_buf *fw_buf)
>       buf = vmalloc(size);
>       if (!buf)
>               return -ENOMEM;
> -     rc = kernel_read(file, 0, buf, size);
> -     if (rc != size) {
> -             if (rc > 0)
> -                     rc = -EIO;
> +
> +     rc = ima_read_and_process_file(file, FIRMWARE_CHECK, buf, size);
> +     if (rc == -EIO)
>               goto fail;
> +     else if (rc != -EOPNOTSUPP) {
> +             rc = kernel_read(file, 0, buf, size);
> +             if (rc != size) {
> +                     if (rc > 0)
> +                             rc = -EIO;
> +                     goto fail;
> +             }
>       }
>       rc = security_kernel_fw_from_file(file, buf, size);
>       if (rc)

This is one way, the other way is to generalize the kernel-read from path
routine. I have some changes which help generalize this routine a bit so
help on review there would be appreciated. I'm personally indifferent
as to needing or not *now* a generic kernel read routine that is shared
for this purpose *but* since this patch set *also* seems to be adding
yet-another file reading I'm more inclined to wish for that to be addressed
now instead.

Please let me know if this logic is fair.

  Luis
--
To unsubscribe from this list: send the line "unsubscribe 
linux-security-module" in
the body of a message to majord...@vger.kernel.org
More majordomo info at  http://vger.kernel.org/majordomo-info.html

Reply via email to