Re: [PATCH] cifs: Fix signature miscalculation

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

 



Ouch! Thanks for this, and just in time for next week's IOLab. :)

Reviewed-by: Tom Talpey <tom@xxxxxxxxxx>

Tom.

On 9/12/2024 12:24 PM, Steve French wrote:
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;









[Linux USB Devel]     [Video for Linux]     [Linux Audio Users]     [Yosemite News]     [Linux Kernel]     [Linux SCSI]

  Powered by Linux