Re: [PATCH] KEYS: close race between key lookup and freeing

From: David Howells
Date: Mon Jan 05 2015 - 11:00:20 EST


Sasha Levin <sasha.levin@xxxxxxxxxx> wrote:

> When a key is being garbage collected, it's key->user would get put before
> the ->destroy() callback is called, where the key is removed from it's
> respective tracking structures.
>
> This leaves a key hanging in a semi-invalid state which leaves a window open
> for a different task to try an access key->user. An example is
> find_keyring_by_name() which would dereference key->user for a key that is
> in the process of being garbage collected (where key->user was freed but
> ->destroy() wasn't called yet - so it's still present in the linked list).
>
> This would cause either a panic, or corrupt memory.
>
> Signed-off-by: Sasha Levin <sasha.levin@xxxxxxxxxx>

Applied.
--
To unsubscribe from this list: send the line "unsubscribe linux-kernel" in
the body of a message to majordomo@xxxxxxxxxxxxxxx
More majordomo info at http://vger.kernel.org/majordomo-info.html
Please read the FAQ at http://www.tux.org/lkml/