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

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


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>

/Jarkko