]> git.ipfire.org Git - thirdparty/kernel/linux.git/commitdiff
smb: use crypto_shash_digest() in symlink_hash()
authorEric Biggers <ebiggers@google.com>
Sun, 29 Oct 2023 05:03:00 +0000 (22:03 -0700)
committerSteve French <stfrench@microsoft.com>
Tue, 31 Oct 2023 17:38:26 +0000 (12:38 -0500)
Simplify symlink_hash() by using crypto_shash_digest() instead of an
init+update+final sequence.  This should also improve performance.

Signed-off-by: Eric Biggers <ebiggers@google.com>
Reviewed-by: Paulo Alcantara (SUSE) <pc@manguebit.com>
Signed-off-by: Steve French <stfrench@microsoft.com>
fs/smb/client/link.c

index c66be4904e1fa0db7277571e5163f0dfe6359b1b..a1da50e66fbb6c2303ed5433d8c0c332f1001c1a 100644 (file)
@@ -42,23 +42,11 @@ symlink_hash(unsigned int link_len, const char *link_str, u8 *md5_hash)
 
        rc = cifs_alloc_hash("md5", &md5);
        if (rc)
-               goto symlink_hash_err;
+               return rc;
 
-       rc = crypto_shash_init(md5);
-       if (rc) {
-               cifs_dbg(VFS, "%s: Could not init md5 shash\n", __func__);
-               goto symlink_hash_err;
-       }
-       rc = crypto_shash_update(md5, link_str, link_len);
-       if (rc) {
-               cifs_dbg(VFS, "%s: Could not update with link_str\n", __func__);
-               goto symlink_hash_err;
-       }
-       rc = crypto_shash_final(md5, md5_hash);
+       rc = crypto_shash_digest(md5, link_str, link_len, md5_hash);
        if (rc)
                cifs_dbg(VFS, "%s: Could not generate md5 hash\n", __func__);
-
-symlink_hash_err:
        cifs_free_hash(&md5);
        return rc;
 }