kvalue = kmalloc(size, GFP_KERNEL); 
kvalue = kzalloc(size, GFP_KERNEL); 
getxattr(struct dentry *d, char __user *name, void __user *value, size_t size){	ssize_t error;	void *kvalue = NULL;	char kname[XATTR_NAME_MAX + 1];	error = strncpy_from_user(kname, name, sizeof(kname));	if (error == 0 || error == sizeof(kname))		error = -ERANGE;	if (error < 0)		return error;	if (size) {		if (size > XATTR_SIZE_MAX)			size = XATTR_SIZE_MAX;		kvalue = kmalloc(size, GFP_KERNEL);		if (!kvalue)			return -ENOMEM;	}	error = security_inode_getxattr(d, kname);	if (error)		goto out;	error = -EOPNOTSUPP;	if (d->d_inode->i_op && d->d_inode->i_op->getxattr)		error = d->d_inode->i_op->getxattr(d, kname, kvalue, size);	else if (!strncmp(kname, XATTR_SECURITY_PREFIX,			  sizeof XATTR_SECURITY_PREFIX - 1)) {		const char *suffix = kname + sizeof XATTR_SECURITY_PREFIX - 1;		error = security_inode_getsecurity(d->d_inode, suffix, kvalue,						   size);	}	if (error > 0) {		if (size && copy_to_user(value, kvalue, error))			error = -EFAULT;	} else if (error == -ERANGE && size >= XATTR_SIZE_MAX) {		/* The file system tried to returned a value bigger		   than XATTR_SIZE_MAX bytes. Not possible. */		error = -E2BIG;	}out:	if (kvalue)		kfree(kvalue);	return error;}
10457	/local/tlutelli/issta_data/temp/c/2005_temp/2005/10457/d381d8a9a08cac9824096213069159be17fd2e2f/xattr.c/clean/fs/xattr.c