summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--fs/cifsd/auth.c6
1 files changed, 5 insertions, 1 deletions
diff --git a/fs/cifsd/auth.c b/fs/cifsd/auth.c
index 5a56dd65fa06..b0a9e4591fa5 100644
--- a/fs/cifsd/auth.c
+++ b/fs/cifsd/auth.c
@@ -1331,9 +1331,13 @@ int ksmbd_crypt_message(struct ksmbd_conn *conn, struct kvec *iov,
rc = crypto_aead_encrypt(req);
else
rc = crypto_aead_decrypt(req);
- if (!rc && enc)
+ if (rc)
+ goto free_iv;
+
+ if (enc)
memcpy(&tr_hdr->Signature, sign, SMB2_SIGNATURE_SIZE);
+free_iv:
kfree(iv);
free_sg:
kfree(sg);