aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorLinus Torvalds <torvalds@linux-foundation.org>2014-12-17 12:52:49 -0500
committerLinus Torvalds <torvalds@linux-foundation.org>2014-12-17 12:52:49 -0500
commit5f5425ef55b3fd2d395fb917edde3e6ae438c29a (patch)
tree7bb9076fdc62d1a8e1022734136d041872c53534
parentc103b21c20ee3d173ccccb7d5ca8f5b8bc02cac3 (diff)
parent5057975ae38452679b964f1382c5efcb9faee74e (diff)
Merge branch 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security
Pull security subsystem fixes from James Morris. * 'for-linus' of git://git.kernel.org/pub/scm/linux/kernel/git/jmorris/linux-security: KEYS: remove a bogus NULL check ima: Fix build failure on powerpc when TCG_IBMVTPM dependencies are not met KEYS: Fix stale key registration at error path
-rw-r--r--security/integrity/ima/Kconfig2
-rw-r--r--security/keys/encrypted-keys/encrypted.c5
-rw-r--r--security/keys/key.c10
3 files changed, 9 insertions, 8 deletions
diff --git a/security/integrity/ima/Kconfig b/security/integrity/ima/Kconfig
index b80a93ec1ccc..57515bc915c0 100644
--- a/security/integrity/ima/Kconfig
+++ b/security/integrity/ima/Kconfig
@@ -10,7 +10,7 @@ config IMA
10 select CRYPTO_HASH_INFO 10 select CRYPTO_HASH_INFO
11 select TCG_TPM if HAS_IOMEM && !UML 11 select TCG_TPM if HAS_IOMEM && !UML
12 select TCG_TIS if TCG_TPM && X86 12 select TCG_TIS if TCG_TPM && X86
13 select TCG_IBMVTPM if TCG_TPM && PPC64 13 select TCG_IBMVTPM if TCG_TPM && PPC_PSERIES
14 help 14 help
15 The Trusted Computing Group(TCG) runtime Integrity 15 The Trusted Computing Group(TCG) runtime Integrity
16 Measurement Architecture(IMA) maintains a list of hash 16 Measurement Architecture(IMA) maintains a list of hash
diff --git a/security/keys/encrypted-keys/encrypted.c b/security/keys/encrypted-keys/encrypted.c
index db9675db1026..7bed4ad7cd76 100644
--- a/security/keys/encrypted-keys/encrypted.c
+++ b/security/keys/encrypted-keys/encrypted.c
@@ -1017,10 +1017,13 @@ static int __init init_encrypted(void)
1017 ret = encrypted_shash_alloc(); 1017 ret = encrypted_shash_alloc();
1018 if (ret < 0) 1018 if (ret < 0)
1019 return ret; 1019 return ret;
1020 ret = aes_get_sizes();
1021 if (ret < 0)
1022 goto out;
1020 ret = register_key_type(&key_type_encrypted); 1023 ret = register_key_type(&key_type_encrypted);
1021 if (ret < 0) 1024 if (ret < 0)
1022 goto out; 1025 goto out;
1023 return aes_get_sizes(); 1026 return 0;
1024out: 1027out:
1025 encrypted_shash_release(); 1028 encrypted_shash_release();
1026 return ret; 1029 return ret;
diff --git a/security/keys/key.c b/security/keys/key.c
index e17ba6aefdc0..aee2ec5a18fc 100644
--- a/security/keys/key.c
+++ b/security/keys/key.c
@@ -276,12 +276,10 @@ struct key *key_alloc(struct key_type *type, const char *desc,
276 if (!key) 276 if (!key)
277 goto no_memory_2; 277 goto no_memory_2;
278 278
279 if (desc) { 279 key->index_key.desc_len = desclen;
280 key->index_key.desc_len = desclen; 280 key->index_key.description = kmemdup(desc, desclen + 1, GFP_KERNEL);
281 key->index_key.description = kmemdup(desc, desclen + 1, GFP_KERNEL); 281 if (!key->description)
282 if (!key->description) 282 goto no_memory_3;
283 goto no_memory_3;
284 }
285 283
286 atomic_set(&key->usage, 1); 284 atomic_set(&key->usage, 1);
287 init_rwsem(&key->sem); 285 init_rwsem(&key->sem);