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

Mauro S. M. Rodrigues maurosr at linux.vnet.ibm.com
Fri Feb 28 04:15:05 AEDT 2020


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,
-- 
2.24.1



More information about the Skiboot mailing list