Revert "ocfs2: add bounds checking to ocfs2_xattr_find_entry()"
This reverts commit 9f8e960daa
.
This commit is contained in:
parent
288d6adf78
commit
ea2eef284d
1 changed files with 4 additions and 8 deletions
|
@ -1068,7 +1068,7 @@ ssize_t ocfs2_listxattr(struct dentry *dentry,
|
||||||
return i_ret + b_ret;
|
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,
|
const char *name,
|
||||||
struct ocfs2_xattr_search *xs)
|
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);
|
name_len = strlen(name);
|
||||||
entry = xs->here;
|
entry = xs->here;
|
||||||
for (i = 0; i < le16_to_cpu(xs->header->xh_count); i++) {
|
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);
|
cmp = name_index - ocfs2_xattr_get_type(entry);
|
||||||
if (!cmp)
|
if (!cmp)
|
||||||
cmp = name_len - entry->xe_name_len;
|
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->base = (void *)xs->header;
|
||||||
xs->here = xs->header->xh_entries;
|
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)
|
if (ret)
|
||||||
return ret;
|
return ret;
|
||||||
size = le64_to_cpu(xs->here->xe_value_size);
|
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. */
|
/* Find the named attribute. */
|
||||||
if (oi->ip_dyn_features & OCFS2_INLINE_XATTR_FL) {
|
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)
|
if (ret && ret != -ENODATA)
|
||||||
return ret;
|
return ret;
|
||||||
xs->not_found = 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->end = (void *)(blk_bh->b_data) + blk_bh->b_size;
|
||||||
xs->here = xs->header->xh_entries;
|
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
|
} else
|
||||||
ret = ocfs2_xattr_index_block_find(inode, blk_bh,
|
ret = ocfs2_xattr_index_block_find(inode, blk_bh,
|
||||||
name_index,
|
name_index,
|
||||||
|
|
Loading…
Reference in a new issue