Ejemplo n.º 1
0
static int hfsplus_user_getxattr(struct dentry *dentry, const char *name,
					void *buffer, size_t size, int type)
{

	return hfsplus_getxattr(dentry, name, buffer, size,
				XATTR_USER_PREFIX, XATTR_USER_PREFIX_LEN);
}
Ejemplo n.º 2
0
static int hfsplus_trusted_getxattr(const struct xattr_handler *handler,
				    struct dentry *dentry, const char *name,
				    void *buffer, size_t size)
{
	return hfsplus_getxattr(dentry, name, buffer, size,
				XATTR_TRUSTED_PREFIX,
				XATTR_TRUSTED_PREFIX_LEN);
}
Ejemplo n.º 3
0
static int hfsplus_trusted_getxattr(struct dentry *dentry, const char *name,
					void *buffer, size_t size, int type)
{
	char xattr_name[HFSPLUS_ATTR_MAX_STRLEN + 1] = {0};
	size_t len = strlen(name);

	if (!strcmp(name, ""))
		return -EINVAL;

	if (len + XATTR_TRUSTED_PREFIX_LEN > HFSPLUS_ATTR_MAX_STRLEN)
		return -EOPNOTSUPP;

	strcpy(xattr_name, XATTR_TRUSTED_PREFIX);
	strcpy(xattr_name + XATTR_TRUSTED_PREFIX_LEN, name);

	return hfsplus_getxattr(dentry, xattr_name, buffer, size);
}
Ejemplo n.º 4
0
static int hfsplus_security_getxattr(struct dentry *dentry, const char *name,
                                     void *buffer, size_t size, int type)
{
    char *xattr_name;
    int res;

    if (!strcmp(name, ""))
        return -EINVAL;

    xattr_name = kmalloc(NLS_MAX_CHARSET_SIZE * HFSPLUS_ATTR_MAX_STRLEN + 1,
                         GFP_KERNEL);
    if (!xattr_name)
        return -ENOMEM;
    strcpy(xattr_name, XATTR_SECURITY_PREFIX);
    strcpy(xattr_name + XATTR_SECURITY_PREFIX_LEN, name);

    res = hfsplus_getxattr(dentry, xattr_name, buffer, size);
    kfree(xattr_name);
    return res;
}