Re: [PATCH] tpm: Do not dereference NULL pointer ifacpi_os_map_memory() fails.

From: Kent Yoder
Date: Wed Aug 15 2012 - 16:15:59 EST


Hi Jesper,

> > Unfortunately we just get NULL back, so we can't really tell the user
> > exactely what went wrong, but we can at least avoid crashing and
> > return an error (-EIO seemed more generic and more suitable here than
> > -ENOMEM or something else, so I picked that).
>
> Thanks Jesper. I'd made some updates to tpm_bios.c recently but this
> should still apply. I'll let you know if not.

Of course I'm wrong here, this code moved over into tpm_acpi.c. If you
can resubmit on top of my staging tree, I will apply it there.

git://github.com/shpedoikal/linux.git v3.6-rc1-tpmdd-staging

> > Signed-off-by: Jesper Juhl <jj@xxxxxxxxxxxxx>
> > ---
> > drivers/char/tpm/tpm_bios.c | 5 +++++
> > 1 file changed, 5 insertions(+)
> >
> > Compile tested only.
> >
> > diff --git a/drivers/char/tpm/tpm_bios.c b/drivers/char/tpm/tpm_bios.c
> > index 0636520..0c5c274 100644
> > --- a/drivers/char/tpm/tpm_bios.c
> > +++ b/drivers/char/tpm/tpm_bios.c
> > @@ -410,6 +410,11 @@ static int read_log(struct tpm_bios_log *log)
> > log->bios_event_log_end = log->bios_event_log + len;
> >
> > virt = acpi_os_map_memory(start, len);
> > + if (!virt) {

Also please add kfree(log->bios_event_log); in this error path.

Thanks,
Kent

> > + printk("%s: ERROR - Unable to map memory\n",
> > + __func__);
> > + return -EIO;
> > + }
> >
> > memcpy(log->bios_event_log, virt, len);
> >
> > --
> > 1.7.11.4
> >
> >
> > --
> > Jesper Juhl <jj@xxxxxxxxxxxxx> http://www.chaosbits.net/
> > Don't top-post http://www.catb.org/jargon/html/T/top-post.html
> > Plain text mails only, please.
> >
>
> --
> To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
> the body of a message to majordomo@xxxxxxxxxxxxxxx
> More majordomo info at http://vger.kernel.org/majordomo-info.html
> Please read the FAQ at http://www.tux.org/lkml/
>

--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/