tpm, st33zp24: potential underflow in st33zp24_recv()
Subsystems (2)
PATCH 2/2 tpm, st33zp24: potential underflow in st33zp24_recv()
Static checkers don't like the min_t() casting because "count" can be negative when we cast it to int. Fix the casting, and change the caller so that "count" can't be negative.
Signed-off-by Dan Carpenter <[email protected]>
drivers/char/tpm/st33zp24/st33zp24.c +2 -2
@@ -350,7 +350,7 @@ static int recv_data(struct tpm_chip *chip, u8 *buf, size_t count) burstcnt =get_burstcount (chip);if (burstcnt <0 )return burstcnt; - len =min_t (int, burstcnt, count - size); + len =min_t (size_t, burstcnt, count - size); ret = tpm_dev->ops->recv (tpm_dev->phy_id,TPM_DATA_FIFO , buf + size, len);if (ret <0 )
@@ -492,7 +492,7 @@ static int st33zp24_recv(struct tpm_chip *chip, unsigned char *buf, } expected =be32_to_cpu (*(__be32 *)(buf +2 )); -if (expected > count) { +if (expected <TPM_HEADER_SIZE || expected > count) { size = -EIO ; goto out; }