aboutsummaryrefslogtreecommitdiffstatshomepage
path: root/crypto
diff options
context:
space:
mode:
authorHerbert Xu <herbert@gondor.apana.org.au>2025-05-15 16:34:04 +0800
committerHerbert Xu <herbert@gondor.apana.org.au>2025-05-19 13:48:20 +0800
commit270b6f13454cb7f2f7058c50df64df409c5dcf55 (patch)
tree54937eef6c7288ee39d475f1554a291ebeb4ff83 /crypto
parentcrypto: lrw - Only add ecb if it is not already there (diff)
downloadwireguard-linux-270b6f13454cb7f2f7058c50df64df409c5dcf55.tar.xz
wireguard-linux-270b6f13454cb7f2f7058c50df64df409c5dcf55.zip
crypto: xts - Only add ecb if it is not already there
Only add ecb to the cipher name if it isn't already ecb. Also use memcmp instead of strncmp since these strings are all stored in an array of length CRYPTO_MAX_ALG_NAME. Fixes: f1c131b45410 ("crypto: xts - Convert to skcipher") Signed-off-by: Herbert Xu <herbert@gondor.apana.org.au>
Diffstat (limited to 'crypto')
-rw-r--r--crypto/xts.c4
1 files changed, 2 insertions, 2 deletions
diff --git a/crypto/xts.c b/crypto/xts.c
index 1a9edd55a3a2..3da8f5e053d6 100644
--- a/crypto/xts.c
+++ b/crypto/xts.c
@@ -363,7 +363,7 @@ static int xts_create(struct crypto_template *tmpl, struct rtattr **tb)
err = crypto_grab_skcipher(&ctx->spawn, skcipher_crypto_instance(inst),
cipher_name, 0, mask);
- if (err == -ENOENT) {
+ if (err == -ENOENT && memcmp(cipher_name, "ecb(", 4)) {
err = -ENAMETOOLONG;
if (snprintf(name, CRYPTO_MAX_ALG_NAME, "ecb(%s)",
cipher_name) >= CRYPTO_MAX_ALG_NAME)
@@ -397,7 +397,7 @@ static int xts_create(struct crypto_template *tmpl, struct rtattr **tb)
/* Alas we screwed up the naming so we have to mangle the
* cipher name.
*/
- if (!strncmp(cipher_name, "ecb(", 4)) {
+ if (!memcmp(cipher_name, "ecb(", 4)) {
int len;
len = strscpy(name, cipher_name + 4, sizeof(name));