aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRicardo Schwarzmeier <Ricardo.Schwarzmeier@infineon.com>2018-06-26 11:31:45 -0400
committerJarkko Sakkinen <jarkko.sakkinen@linux.intel.com>2018-07-28 10:03:11 -0400
commit36a11029b07ee30bdc4553274d0efea645ed9d91 (patch)
treea0905a4c425cd3c4ce19357b130783a24cc4c977
parent627448e85c766587f6fdde1ea3886d6615081c77 (diff)
tpm: Return the actual size when receiving an unsupported command
The userpace expects to read the number of bytes stated in the header. Returning the size of the buffer instead would be unexpected. Cc: stable@vger.kernel.org Fixes: 095531f891e6 ("tpm: return a TPM_RC_COMMAND_CODE response if command is not implemented") Signed-off-by: Ricardo Schwarzmeier <Ricardo.Schwarzmeier@infineon.com> Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com> Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
-rw-r--r--drivers/char/tpm/tpm-interface.c2
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/char/tpm/tpm-interface.c b/drivers/char/tpm/tpm-interface.c
index 31b86e027f9d..3a3a7a548a85 100644
--- a/drivers/char/tpm/tpm-interface.c
+++ b/drivers/char/tpm/tpm-interface.c
@@ -450,7 +450,7 @@ static ssize_t tpm_try_transmit(struct tpm_chip *chip,
450 header->tag = cpu_to_be16(TPM2_ST_NO_SESSIONS); 450 header->tag = cpu_to_be16(TPM2_ST_NO_SESSIONS);
451 header->return_code = cpu_to_be32(TPM2_RC_COMMAND_CODE | 451 header->return_code = cpu_to_be32(TPM2_RC_COMMAND_CODE |
452 TSS2_RESMGR_TPM_RC_LAYER); 452 TSS2_RESMGR_TPM_RC_LAYER);
453 return bufsiz; 453 return sizeof(*header);
454 } 454 }
455 455
456 if (bufsiz > TPM_BUFSIZE) 456 if (bufsiz > TPM_BUFSIZE)