Re: [PATCH v3 1/6] tpm: Move buffer handling from static inlines to real functions

From: Jerry Snitselaar
Date: Thu Oct 26 2023 - 13:11:20 EST


On Wed, Oct 25, 2023 at 08:35:55PM +0300, Jarkko Sakkinen wrote:
> On Wed Oct 25, 2023 at 12:03 PM EEST, Jerry Snitselaar wrote:
> > Reviewed-by: Jerry Snitselaar <jsnitsel@xxxxxxxxxx>
>
> On Wed, 2023-10-25 at 02:03 -0700, Jerry Snitselaar wrote:
> > Reviewed-by: Jerry Snitselaar <jsnitsel@xxxxxxxxxx>
> >
>
> Thanks I'll add it to the next round.
>
> For the tpm_buf_read(), I was thinking along the lines of:
>
> /**
> * tpm_buf_read() - Read from a TPM buffer
> * @buf: &tpm_buf instance
> * @pos: position within the buffer
> * @count: the number of bytes to read
> * @output: the output buffer
> *
> * Read bytes from a TPM buffer, and update the position. Returns false when the
> * amount of bytes requested would overflow the buffer, which is expected to
> * only happen in the case of hardware failure.
> */
> static bool tpm_buf_read(const struct tpm_buf *buf, off_t *pos, size_t count, void *output)
> {
> off_t next = *pos + count;
>
> if (next >= buf->length) {
> pr_warn("%s: %lu >= %lu\n", __func__, next, *offset);
> return false;
> }
>
> memcpy(output, &buf->data[*pos], count);
> *offset = next;
> return true;
> }
>
> BR, Jarkko
>

Then the callers will check, and return -EIO?