Tadeusz Struk 3ab2011ea3 tpm: fix race condition in tpm_common_write()
There is a race condition in tpm_common_write function allowing
two threads on the same /dev/tpm<N>, or two different applications
on the same /dev/tpmrm<N> to overwrite each other commands/responses.
Fixed this by taking the priv->buffer_mutex early in the function.

Also converted the priv->data_pending from atomic to a regular size_t
type. There is no need for it to be atomic since it is only touched
under the protection of the priv->buffer_mutex.

Fixes: 1da177e4c3f4 ("Linux-2.6.12-rc2")
Cc: stable@vger.kernel.org
Signed-off-by: Tadeusz Struk <tadeusz.struk@intel.com>
Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
Signed-off-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com>
2018-05-30 20:11:31 +03:00
..
2018-02-06 09:59:40 -08:00
2018-03-14 19:13:47 +01:00
2017-08-28 17:11:28 +02:00
2018-04-04 20:07:20 -07:00
2018-03-26 15:56:35 +02:00
2011-03-31 11:26:23 -03:00
2016-01-22 18:04:28 -05:00