diff --git a/fs/ocfs2/xattr.c b/fs/ocfs2/xattr.c index 2713f74e2..8b7df5e0f 100755 --- a/fs/ocfs2/xattr.c +++ b/fs/ocfs2/xattr.c @@ -1068,7 +1068,7 @@ ssize_t ocfs2_listxattr(struct dentry *dentry, return i_ret + b_ret; } -static int ocfs2_xattr_find_entry(struct inode *inode, int name_index, +static int ocfs2_xattr_find_entry(int name_index, const char *name, struct ocfs2_xattr_search *xs) { @@ -1082,10 +1082,6 @@ static int ocfs2_xattr_find_entry(struct inode *inode, int name_index, name_len = strlen(name); entry = xs->here; for (i = 0; i < le16_to_cpu(xs->header->xh_count); i++) { - if ((void *)entry >= xs->end) { - ocfs2_error(inode->i_sb, "corrupted xattr entries"); - return -EFSCORRUPTED; - } cmp = name_index - ocfs2_xattr_get_type(entry); if (!cmp) cmp = name_len - entry->xe_name_len; @@ -1176,7 +1172,7 @@ static int ocfs2_xattr_ibody_get(struct inode *inode, xs->base = (void *)xs->header; xs->here = xs->header->xh_entries; - ret = ocfs2_xattr_find_entry(inode, name_index, name, xs); + ret = ocfs2_xattr_find_entry(name_index, name, xs); if (ret) return ret; size = le64_to_cpu(xs->here->xe_value_size); @@ -2708,7 +2704,7 @@ static int ocfs2_xattr_ibody_find(struct inode *inode, /* Find the named attribute. */ if (oi->ip_dyn_features & OCFS2_INLINE_XATTR_FL) { - ret = ocfs2_xattr_find_entry(inode, name_index, name, xs); + ret = ocfs2_xattr_find_entry(name_index, name, xs); if (ret && ret != -ENODATA) return ret; xs->not_found = ret; @@ -2843,7 +2839,7 @@ static int ocfs2_xattr_block_find(struct inode *inode, xs->end = (void *)(blk_bh->b_data) + blk_bh->b_size; xs->here = xs->header->xh_entries; - ret = ocfs2_xattr_find_entry(inode, name_index, name, xs); + ret = ocfs2_xattr_find_entry(name_index, name, xs); } else ret = ocfs2_xattr_index_block_find(inode, blk_bh, name_index,