Re: [PATCH 4/7] firmware_class: perform new LSM checks

James Morris
2014-07-19T07:22:41Z

On Fri, 18 Jul 2014, Kees Cook wrote:

> On Thu, Jul 17, 2014 at 8:41 PM, James Morris <jmorris@namei.org> wrote:
> > On Mon, 14 Jul 2014, Kees Cook wrote:
> >
> >> This attaches LSM hooks to the existing firmware loading interfaces:
> >> filesystem-found firmware and demand-loaded blobs.
> >
> >> static int fw_get_filesystem_firmware(struct device *device,
> >> @@ -640,6 +646,12 @@ static ssize_t firmware_loading_store(struct device *dev,
> >> break;
> >> case 0:
> >> if (test_bit(FW_STATUS_LOADING, &fw_buf->status)) {
> >> + if (security_kernel_fw_from_file(NULL, fw_buf->data,
> >> + fw_buf->size)) {
> >> + fw_load_abort(fw_priv);
> >> + break;
> >> + }
> >> +
> >> set_bit(FW_STATUS_DONE, &fw_buf->status);
> >> clear_bit(FW_STATUS_LOADING, &fw_buf->status);
> >>
> >>
> >
> > Can you explain the loading store, and what the semantics are for an LSM
> > when a NULL is passed as the file?
>
> I'm not sure what you mean by "loading store"?

The caller: firmware_loading_store()

> When NULL is passed as the file, it means that the firmware was passes
> a blob, and there is no file backing it:

Where does this blob come from, is cached, built into the kernel, or what?

--
James Morris
<jmorris@namei.org>