Re: [PATCH v2] tpm: Fix null pointer dereference on chip register error path

From: Jarkko Sakkinen
Date: Mon Jul 08 2019 - 10:44:31 EST


On Mon, 2019-07-08 at 17:34 +0300, Jarkko Sakkinen wrote:
> On Thu, 2019-07-04 at 09:26 +0200, Milan Broz wrote:
> > If clk_enable is not defined and chip initialization
> > is canceled code hits null dereference.
> >
> > Easily reproducible with vTPM init fail:
> > swtpm chardev --tpmstate dir=nonexistent_dir --tpm2 --vtpm-proxy
> >
> > BUG: kernel NULL pointer dereference, address: 00000000
> > ...
> > Call Trace:
> > tpm_chip_start+0x9d/0xa0 [tpm]
> > tpm_chip_register+0x10/0x1a0 [tpm]
> > vtpm_proxy_work+0x11/0x30 [tpm_vtpm_proxy]
> > process_one_work+0x214/0x5a0
> > worker_thread+0x134/0x3e0
> > ? process_one_work+0x5a0/0x5a0
> > kthread+0xd4/0x100
> > ? process_one_work+0x5a0/0x5a0
> > ? kthread_park+0x90/0x90
> > ret_from_fork+0x19/0x24
> >
> > Fixes: 719b7d81f204 ("tpm: introduce tpm_chip_start() and tpm_chip_stop()")
> > Cc: stable@xxxxxxxxxxxxxxx # v5.1+
> > Signed-off-by: Milan Broz <gmazyland@xxxxxxxxx>
>
> Looks legit.
>
> Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen@xxxxxxxxxxxxxxx>

Please check master and next branches from

git://git.infradead.org/users/jjs/linux-tpmdd.git

/Jarkko