Tiger Yang
2008-Nov-02 11:04 UTC
[Ocfs2-devel] [PATCH 1/1] ocfs2: add search result checking in block_get
Because ocfs2_xattr_block_find may return zero when not found the xattr entry, and struct ocfs2_xattr_search may have not be initialized. So check the search result is necessary to avoid access NULL pointer. Signed-off-by: Tiger Yang <tiger.yang at oracle.com> --- fs/ocfs2/xattr.c | 7 ++++++- 1 files changed, 6 insertions(+), 1 deletions(-) diff --git a/fs/ocfs2/xattr.c b/fs/ocfs2/xattr.c index 70baffe..054e2ef 100644 --- a/fs/ocfs2/xattr.c +++ b/fs/ocfs2/xattr.c @@ -777,6 +777,11 @@ static int ocfs2_xattr_block_get(struct inode *inode, goto cleanup; } + if (xs->not_found) { + ret = -ENODATA; + goto cleanup; + } + xb = (struct ocfs2_xattr_block *)xs->xattr_bh->b_data; size = le64_to_cpu(xs->here->xe_value_size); if (buffer) { @@ -860,7 +865,7 @@ static int ocfs2_xattr_get(struct inode *inode, down_read(&oi->ip_xattr_sem); ret = ocfs2_xattr_ibody_get(inode, name_index, name, buffer, buffer_size, &xis); - if (ret == -ENODATA) + if (ret == -ENODATA && di->i_xattr_loc) ret = ocfs2_xattr_block_get(inode, name_index, name, buffer, buffer_size, &xbs); up_read(&oi->ip_xattr_sem); -- 1.5.4.1
Mark Fasheh
2008-Nov-04 00:20 UTC
[Ocfs2-devel] [PATCH 1/1] ocfs2: add search result checking in block_get
On Sun, Nov 02, 2008 at 07:04:21PM +0800, Tiger Yang wrote:> Because ocfs2_xattr_block_find may return zero when not found > the xattr entry, and struct ocfs2_xattr_search may have not > be initialized. So check the search result is necessary to > avoid access NULL pointer.Ok, thanks. This is now in the fixes branch. --Mark -- Mark Fasheh