summaryrefslogtreecommitdiff
path: root/security/keys
diff options
context:
space:
mode:
authorTadeusz Struk <tadeusz.struk@intel.com>2019-03-27 11:32:38 -0700
committerJames Morris <james.morris@microsoft.com>2019-04-08 15:58:53 -0700
commit7110629263469b4664d00b38ef80a656eddf3637 (patch)
tree37d9040e8ac9e3fcd3644d85a2960172ee510413 /security/keys
parente891db1a18bf11e02533ec2386b796cfd8d60666 (diff)
tpm: fix an invalid condition in tpm_common_poll
The poll condition should only check response_length, because reads should only be issued if there is data to read. The response_read flag only prevents double writes. The problem was that the write set the response_read to false, enqued a tpm job, and returned. Then application called poll which checked the response_read flag and returned EPOLLIN. Then the application called read, but got nothing. After all that the async_work kicked in. Added also mutex_lock around the poll check to prevent other possible race conditions. Fixes: 9488585b21bef0df12 ("tpm: add support for partial reads") Reported-by: Mantas Mikulėnas <grawity@gmail.com> Tested-by: Mantas Mikulėnas <grawity@gmail.com> 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> Signed-off-by: James Morris <james.morris@microsoft.com>
Diffstat (limited to 'security/keys')
0 files changed, 0 insertions, 0 deletions