tpm: validate TPM 2.0 commands
authorJarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Fri, 11 Nov 2016 04:42:07 +0000 (20:42 -0800)
committerJarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Mon, 3 Apr 2017 19:46:01 +0000 (22:46 +0300)
commit58472f5cd4f6ff02488c8da3cdbf719e9dd21e48
tree01f094fc452036587c1cd921fec86e0732646a89
parent9aa36b399a50bf8a1c9dae33c25164afae14e1e3
tpm: validate TPM 2.0 commands

Check for every TPM 2.0 command that the command code is supported and
the command buffer has at least the length that can contain the header
and the handle area.

For ContextSave and FlushContext we mark the body to be part of the
handle area. This gives validation for these commands at zero
cost, including the body of the command.

The more important reason for this is that we can virtualize these
commands in the same way as you would virtualize the handle area of a
command.

Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Tested-by: James Bottomley <James.Bottomley@HansenPartnership.com>
Reviewed-by: James Bottomley <James.Bottomley@HansenPartnership.com>
drivers/char/tpm/tpm-interface.c
drivers/char/tpm/tpm.h
drivers/char/tpm/tpm2-cmd.c