diff options
author | Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com> | 2017-01-25 23:00:22 +0200 |
---|---|---|
committer | Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com> | 2017-02-03 22:03:14 +0200 |
commit | 7d761119a914ec0ac05ec2a5378d1f86e680967d (patch) | |
tree | 6bc37ee3c9fedc7a375104bb1beab183f25de855 /drivers/char/tpm/tpm2-cmd.c | |
parent | 419a16d9cda3408090704d5e3956c866e18f0af6 (diff) | |
download | linux-7d761119a914ec0ac05ec2a5378d1f86e680967d.tar.gz linux-7d761119a914ec0ac05ec2a5378d1f86e680967d.tar.bz2 linux-7d761119a914ec0ac05ec2a5378d1f86e680967d.zip |
tpm: fix RC value check in tpm2_seal_trusted
The error code handling is broken as any error code that has the same
bits set as TPM_RC_HASH passes. Implemented tpm2_rc_value() helper to
parse the error value from FMT0 and FMT1 error codes so that these types
of mistakes are prevented in the future.
Fixes: 5ca4c20cfd37 ("keys, trusted: select hash algorithm for TPM2 chips")
Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Reviewed-by: Jason Gunthorpe <jgunthorpe@obsidianresearch.com>
Diffstat (limited to 'drivers/char/tpm/tpm2-cmd.c')
-rw-r--r-- | drivers/char/tpm/tpm2-cmd.c | 2 |
1 files changed, 1 insertions, 1 deletions
diff --git a/drivers/char/tpm/tpm2-cmd.c b/drivers/char/tpm/tpm2-cmd.c index a0199f18f7fb..42fe3dde0d8c 100644 --- a/drivers/char/tpm/tpm2-cmd.c +++ b/drivers/char/tpm/tpm2-cmd.c @@ -546,7 +546,7 @@ out: tpm_buf_destroy(&buf); if (rc > 0) { - if ((rc & TPM2_RC_HASH) == TPM2_RC_HASH) + if (tpm2_rc_value(rc) == TPM2_RC_HASH) rc = -EINVAL; else rc = -EPERM; |