[Skiboot] [PATCH] tpm_i2c_nuvoton: fix tpm_read_fifo overflow check

Claudio Carvalho cclaudio at linux.ibm.com
Wed Mar 4 05:15:10 AEDT 2020


Good catch!

Reviewed-by: Claudio Carvalho <cclaudio at linux.ibm.com>

Claudio

On 2/27/20 2:15 PM, Mauro S. M. Rodrigues wrote:
> The tpm_read_fifo expects buflen parameter which is the size of buf
> parameter. Later it uses buflen to check for an overflow in the case tpm
> response is bigger than buf capacity.
>
> The check is fine, but it doesn't interrupt the code flow, so even though
> we see error messages about the overflow, it doesn't prevent it.
>
> Adding a goto after specifying the error return code fixes it.
>
> Signed-off-by: Mauro S. M. Rodrigues <maurosr at linux.vnet.ibm.com>
> ---
>  libstb/drivers/tpm_i2c_nuvoton.c | 1 +
>  1 file changed, 1 insertion(+)
>
> diff --git a/libstb/drivers/tpm_i2c_nuvoton.c b/libstb/drivers/tpm_i2c_nuvoton.c
> index 3679ddafc..d668000e4 100644
> --- a/libstb/drivers/tpm_i2c_nuvoton.c
> +++ b/libstb/drivers/tpm_i2c_nuvoton.c
> @@ -383,6 +383,7 @@ static int tpm_read_fifo(uint8_t* buf, size_t* buflen)
>  			prlog(PR_ERR, "NUVOTON: overflow on fifo read, c=%zd, "
>  			      "bc=%d, bl=%zd\n", count, burst_count, *buflen);
>  			rc = STB_TPM_OVERFLOW;
> +			goto error;
>  		}
>  		rc = tpm_i2c_request_send(tpm_device,
>  					  SMBUS_READ,


More information about the Skiboot mailing list