Message ID | 157843468820.24718.10808226634364669421.stgit@tstruk-mobl1 (mailing list archive) |
---|---|
State | New, archived |
Headers | show |
Series | tpm: handle negative priv->response_len in tpm_common_read | expand |
On Tue, 2020-01-07 at 14:04 -0800, Tadeusz Struk wrote: > The priv->responce_length can hold the size of an response or > an negative error code, and the tpm_common_read() needs to handle > both cases correctly. Changed the type of responce_length to > signed and accounted for negative value in tpm_common_read() > > Cc: stable@vger.kernel.org > Fixes: d23d12484307 ("tpm: fix invalid locking in NONBLOCKING mode") > Reported-by: Laura Abbott <labbott@redhat.com> > Signed-off-by: Tadeusz Struk <tadeusz.struk@intel.com> Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com> Adding to the next PR. /Jarkko
On Wed, 2020-01-08 at 17:58 +0200, Jarkko Sakkinen wrote: > On Tue, 2020-01-07 at 14:04 -0800, Tadeusz Struk wrote: > > The priv->responce_length can hold the size of an response or > > an negative error code, and the tpm_common_read() needs to handle > > both cases correctly. Changed the type of responce_length to > > signed and accounted for negative value in tpm_common_read() > > > > Cc: stable@vger.kernel.org > > Fixes: d23d12484307 ("tpm: fix invalid locking in NONBLOCKING mode") > > Reported-by: Laura Abbott <labbott@redhat.com> > > Signed-off-by: Tadeusz Struk <tadeusz.struk@intel.com> > > Reviewed-by: Jarkko Sakkinen <jarkko.sakkinen@linux.intel.com> > > Adding to the next PR. Applied but had to fix bunch of typos, missing punctaction and missing parentheses in the commit message. Even checkpatch.pl was complaining :-/ Thanks. /Jarkko
On 1/8/20 8:04 AM, Jarkko Sakkinen wrote: > Applied but had to fix bunch of typos, missing punctaction and > missing parentheses in the commit message. Even checkpatch.pl > was complaining :-/ Forgot about the checkpatch.pl thing. Sorry.
On Wed, Jan 08, 2020 at 09:47:31AM -0800, Tadeusz Struk wrote: > On 1/8/20 8:04 AM, Jarkko Sakkinen wrote: > > Applied but had to fix bunch of typos, missing punctaction and > > missing parentheses in the commit message. Even checkpatch.pl > > was complaining :-/ > > Forgot about the checkpatch.pl thing. Sorry. NP, just mentioning this for the future patches. /Jarkko
diff --git a/drivers/char/tpm/tpm-dev-common.c b/drivers/char/tpm/tpm-dev-common.c index b23b0b999232..87f449340202 100644 --- a/drivers/char/tpm/tpm-dev-common.c +++ b/drivers/char/tpm/tpm-dev-common.c @@ -130,7 +130,7 @@ ssize_t tpm_common_read(struct file *file, char __user *buf, priv->response_read = true; ret_size = min_t(ssize_t, size, priv->response_length); - if (!ret_size) { + if (ret_size <= 0) { priv->response_length = 0; goto out; } diff --git a/drivers/char/tpm/tpm-dev.h b/drivers/char/tpm/tpm-dev.h index 1089fc0bb290..f3742bcc73e3 100644 --- a/drivers/char/tpm/tpm-dev.h +++ b/drivers/char/tpm/tpm-dev.h @@ -14,7 +14,7 @@ struct file_priv { struct work_struct timeout_work; struct work_struct async_work; wait_queue_head_t async_wait; - size_t response_length; + ssize_t response_length; bool response_read; bool command_enqueued;
The priv->responce_length can hold the size of an response or an negative error code, and the tpm_common_read() needs to handle both cases correctly. Changed the type of responce_length to signed and accounted for negative value in tpm_common_read() Cc: stable@vger.kernel.org Fixes: d23d12484307 ("tpm: fix invalid locking in NONBLOCKING mode") Reported-by: Laura Abbott <labbott@redhat.com> Signed-off-by: Tadeusz Struk <tadeusz.struk@intel.com> --- drivers/char/tpm/tpm-dev-common.c | 2 +- drivers/char/tpm/tpm-dev.h | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-)