Donate to e Foundation | Murena handsets with /e/OS | Own a part of Murena! Learn more

Commit b26bdde5 authored by Takashi Iwai's avatar Takashi Iwai Committed by Mimi Zohar
Browse files

KEYS: Fix stale key registration at error path

When loading encrypted-keys module, if the last check of
aes_get_sizes() in init_encrypted() fails, the driver just returns an
error without unregistering its key type.  This results in the stale
entry in the list.  In addition to memory leaks, this leads to a kernel
crash when registering a new key type later.

This patch fixes the problem by swapping the calls of aes_get_sizes()
and register_key_type(), and releasing resources properly at the error
paths.

Bugzilla: https://bugzilla.opensuse.org/show_bug.cgi?id=908163


Cc: <stable@vger.kernel.org>
Signed-off-by: default avatarTakashi Iwai <tiwai@suse.de>
Signed-off-by: default avatarMimi Zohar <zohar@linux.vnet.ibm.com>
parent b2d1965d
Loading
Loading
Loading
Loading
+4 −1
Original line number Diff line number Diff line
@@ -1017,10 +1017,13 @@ static int __init init_encrypted(void)
	ret = encrypted_shash_alloc();
	if (ret < 0)
		return ret;
	ret = aes_get_sizes();
	if (ret < 0)
		goto out;
	ret = register_key_type(&key_type_encrypted);
	if (ret < 0)
		goto out;
	return aes_get_sizes();
	return 0;
out:
	encrypted_shash_release();
	return ret;