Commit 270b6f13 authored by Herbert Xu's avatar Herbert Xu
Browse files

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: f1c131b4 ("crypto: xts - Convert to skcipher")
Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
parent 3d73909b
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -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));