X-Git-Url: https://git.karo-electronics.de/?a=blobdiff_plain;f=security%2Fkeys%2Fkeyring.c;h=88292e3dee966103fff3f4a9e1cba7b5d22fc5c9;hb=93d74463d018ddf05c169ad399e62e90e0f82fc0;hp=e8d02acc51e7180f23a31b849ccce820418fd55c;hpb=4d3ce21fa9d2eaeda113aa2f9c2da80d972bef64;p=mv-sheeva.git diff --git a/security/keys/keyring.c b/security/keys/keyring.c index e8d02acc51e..88292e3dee9 100644 --- a/security/keys/keyring.c +++ b/security/keys/keyring.c @@ -66,6 +66,8 @@ struct key_type key_type_keyring = { .read = keyring_read, }; +EXPORT_SYMBOL(key_type_keyring); + /* * semaphore to serialise link/link calls to prevent two link calls in parallel * introducing a cycle @@ -706,12 +708,10 @@ int __key_link(struct key *keyring, struct key *key) BUG_ON(size > PAGE_SIZE); ret = -ENOMEM; - nklist = kmalloc(size, GFP_KERNEL); + nklist = kmemdup(klist, size, GFP_KERNEL); if (!nklist) goto error2; - memcpy(nklist, klist, size); - /* replace matched key */ atomic_inc(&key->usage); nklist->keys[loop] = key;