key = lookup_user_key(id, 0, 0, KEY_WRITE); 
key = lookup_user_key(NULL, id, 0, 0, KEY_WRITE); 
long keyctl_update_key(key_serial_t id,		       const void __user *_payload,		       size_t plen){	struct key *key;	void *payload;	long ret;	ret = -EINVAL;	if (plen > PAGE_SIZE)		goto error;	/* pull the payload in if one was supplied */	payload = NULL;	if (_payload) {		ret = -ENOMEM;		payload = kmalloc(plen, GFP_KERNEL);		if (!payload)			goto error;		ret = -EFAULT;		if (copy_from_user(payload, _payload, plen) != 0)			goto error2;	}	/* find the target key (which must be writable) */	key = lookup_user_key(id, 0, 0, KEY_WRITE);	if (IS_ERR(key)) {		ret = PTR_ERR(key);		goto error2;	}	/* update the key */	ret = key_update(key, payload, plen);	key_put(key); error2:	kfree(payload); error:	return ret;} /* end keyctl_update_key() */
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/3e30148c3d524a9c1c63ca28261bc24c457eb07a/keyctl.c/clean/security/keys/keyctl.c