Re: [PATCH] cifs: Fix signature miscalculation
From: Steve French
Date: Thu Sep 12 2024 - 12:24:30 EST
looks like this fixes the problem - merged into cifs-2.6.git for-next
On Thu, Sep 12, 2024 at 10:59 AM David Howells <dhowells@xxxxxxxxxx> wrote:
>
>
> Fix the calculation of packet signatures by adding the offset into a page
> in the read or write data payload when hashing the pages from it.
>
> Fixes: 39bc58203f04 ("cifs: Add a function to Hash the contents of an iterator")
> Signed-off-by: David Howells <dhowells@xxxxxxxxxx>
> cc: Steve French <sfrench@xxxxxxxxx>
> cc: Paulo Alcantara <pc@xxxxxxxxxxxxx>
> cc: Shyam Prasad N <nspmangalore@xxxxxxxxx>
> cc: Rohith Surabattula <rohiths.msft@xxxxxxxxx>
> cc: Jeff Layton <jlayton@xxxxxxxxxx>
> cc: linux-cifs@xxxxxxxxxxxxxxx
> cc: linux-fsdevel@xxxxxxxxxxxxxxx
> ---
> fs/smb/client/cifsencrypt.c | 2 +-
> 1 file changed, 1 insertion(+), 1 deletion(-)
>
> diff --git a/fs/smb/client/cifsencrypt.c b/fs/smb/client/cifsencrypt.c
> index 6322f0f68a17..b0473c2567fe 100644
> --- a/fs/smb/client/cifsencrypt.c
> +++ b/fs/smb/client/cifsencrypt.c
> @@ -129,7 +129,7 @@ static ssize_t cifs_shash_xarray(const struct iov_iter *iter, ssize_t maxsize,
> for (j = foffset / PAGE_SIZE; j < npages; j++) {
> len = min_t(size_t, maxsize, PAGE_SIZE - offset);
> p = kmap_local_page(folio_page(folio, j));
> - ret = crypto_shash_update(shash, p, len);
> + ret = crypto_shash_update(shash, p + offset, len);
> kunmap_local(p);
> if (ret < 0)
> return ret;
>
>
--
Thanks,
Steve