diff options
author | Max Krummenacher <max.krummenacher@toradex.com> | 2018-06-19 17:19:28 +0200 |
---|---|---|
committer | Max Krummenacher <max.krummenacher@toradex.com> | 2018-06-19 17:19:28 +0200 |
commit | 731e809d3e4a14e49756bd4158b98c69e39a8459 (patch) | |
tree | 66644c715500c88a6f6285cae57a6067f0ed8105 /drivers/char/tpm/tpm_i2c_nuvoton.c | |
parent | b2a7f2f2fd3ec48b3d309111b6fe8ddee227539d (diff) | |
parent | 5b5a04065fb5487303869fd6080c30f86530005d (diff) |
Merge branch 'fslc_4.9-1.0.x-imx' into toradex_4.9-1.0.x-imx-next
Diffstat (limited to 'drivers/char/tpm/tpm_i2c_nuvoton.c')
-rw-r--r-- | drivers/char/tpm/tpm_i2c_nuvoton.c | 8 |
1 files changed, 6 insertions, 2 deletions
diff --git a/drivers/char/tpm/tpm_i2c_nuvoton.c b/drivers/char/tpm/tpm_i2c_nuvoton.c index c6428771841f..caa86b19c76d 100644 --- a/drivers/char/tpm/tpm_i2c_nuvoton.c +++ b/drivers/char/tpm/tpm_i2c_nuvoton.c @@ -281,7 +281,11 @@ static int i2c_nuvoton_recv(struct tpm_chip *chip, u8 *buf, size_t count) struct device *dev = chip->dev.parent; struct i2c_client *client = to_i2c_client(dev); s32 rc; - int expected, status, burst_count, retries, size = 0; + int status; + int burst_count; + int retries; + int size = 0; + u32 expected; if (count < TPM_HEADER_SIZE) { i2c_nuvoton_ready(chip); /* return to idle */ @@ -323,7 +327,7 @@ static int i2c_nuvoton_recv(struct tpm_chip *chip, u8 *buf, size_t count) * to machine native */ expected = be32_to_cpu(*(__be32 *) (buf + 2)); - if (expected > count) { + if (expected > count || expected < size) { dev_err(dev, "%s() expected > count\n", __func__); size = -EIO; continue; |