Commit 3d73909b authored by Herbert Xu's avatar Herbert Xu
Browse files

crypto: lrw - 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: 700cb3f5 ("crypto: lrw - Convert to skcipher")
Reported-by: default avatarkernel test robot <oliver.sang@intel.com>
Closes: https://lore.kernel.org/oe-lkp/202505151503.d8a6cf10-lkp@intel.com


Signed-off-by: default avatarHerbert Xu <herbert@gondor.apana.org.au>
parent 18c438b2
Loading
Loading
Loading
Loading
+2 −2
Original line number Diff line number Diff line
@@ -322,7 +322,7 @@ static int lrw_create(struct crypto_template *tmpl, struct rtattr **tb)

	err = crypto_grab_skcipher(spawn, skcipher_crypto_instance(inst),
				   cipher_name, 0, mask);
	if (err == -ENOENT) {
	if (err == -ENOENT && memcmp(cipher_name, "ecb(", 4)) {
		err = -ENAMETOOLONG;
		if (snprintf(ecb_name, CRYPTO_MAX_ALG_NAME, "ecb(%s)",
			     cipher_name) >= CRYPTO_MAX_ALG_NAME)
@@ -356,7 +356,7 @@ static int lrw_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(ecb_name, cipher_name + 4, sizeof(ecb_name));