X-Git-Url: http://pilppa.org/gitweb/?a=blobdiff_plain;f=security%2Fkeys%2Fkeyring.c;h=88292e3dee966103fff3f4a9e1cba7b5d22fc5c9;hb=bfcf02edeca0bb72873f05f7b425cca7893a5b2d;hp=e8d02acc51e7180f23a31b849ccce820418fd55c;hpb=f17a2686b11453680e9662ef8bdc8d948d0dce18;p=linux-2.6-omap-h63xx.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;