tpm: add check for minimum buffer size in tpm_transmit()
authorJarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Mon, 12 Sep 2016 10:43:30 +0000 (13:43 +0300)
committerJarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Thu, 15 Sep 2016 13:04:21 +0000 (16:04 +0300)
tpm_transmit() does not check that bufsiz is at least TPM_HEADER_SIZE
before accessing data. This commit adds this check and returns -EINVAL
if it fails.

Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
drivers/char/tpm/tpm-interface.c

index 3970f84..8de6187 100644 (file)
@@ -337,6 +337,9 @@ ssize_t tpm_transmit(struct tpm_chip *chip, const u8 *buf, size_t bufsiz,
        u32 count, ordinal;
        unsigned long stop;
 
+       if (bufsiz < TPM_HEADER_SIZE)
+               return -EINVAL;
+
        if (bufsiz > TPM_BUFSIZE)
                bufsiz = TPM_BUFSIZE;