FAILED: patch "[PATCH] security/keys: properly zero out sensitive key material in" failed to apply to 4.4-stable tree
Subsystems (3)
[email protected]
maintainerThe patch below does not apply to the 4.4-stable tree.
If someone wants it applied there, or to any other stable or longterm tree, then please email the backport, including the original git commit id to <[email protected]>.
thanks,
greg k-h
------------------ original commit in Linus's tree ------------------
Quoted 1 line
From
910801809b2e40a4baedd080ef5d80b4a180e70eMon Sep 17 00:00:00 2001
From: "Jason A. Donenfeld" <[email protected]>
Date: Wed, 20 Sep 2017 16:58:38 +0200
Subject: [PATCH] security/keys: properly zero out sensitive key material in
big_key
Error paths forgot to zero out sensitive material, so this patch changes some kfrees into a kzfrees.
Signed-off-by Jason A. Donenfeld <[email protected]>
Signed-off-by David Howells <[email protected]>
Reviewed-by Eric Biggers <[email protected]>
Cc Herbert Xu <[email protected]>
Cc Kirill Marinushkin <[email protected]>
security/keys/big_key.c +6 -6
@@ -195,7 +195,7 @@ int big_key_preparse(struct key_preparsed_payload *prep) *path = file->f_path;path_get (path);fput (file); -kfree (data); +kzfree (data); }else {/* Just store the data in a buffer */ void *data =kmalloc (datalen,GFP_KERNEL );
@@ -211,9 +211,9 @@ int big_key_preparse(struct key_preparsed_payload *prep) err_fput:fput (file); err_enckey: -kfree (enckey); +kzfree (enckey); error: -kfree (data); +kzfree (data);return ret; }
@@ -227,7 +227,7 @@ void big_key_free_preparse(struct key_preparsed_payload *prep)path_put (path); } -kfree (prep->payload.data[big_key_data]); +kzfree (prep->payload.data[big_key_data]); }/*
@@ -259,7 +259,7 @@ void big_key_destroy(struct key *key) path->mnt =NULL ; path->dentry =NULL ; } -kfree (key->payload.data[big_key_data]); +kzfree (key->payload.data[big_key_data]); key->payload.data[big_key_data] =NULL ; }
@@ -328,7 +328,7 @@ long big_key_read(const struct key *key, char __user *buffer, size_t buflen) err_fput:fput (file); error: -kfree (data); +kzfree (data); }else { ret = datalen; if (copy_to_user(buffer, key->payload.data[big_key_data],