diff --git a/fs/ocfs2/file.c b/fs/ocfs2/file.c index da209f81c9eec2ab9f93b29564865d5847d6d0a6..135b7334be7d7a48485951643e7b5bcdeeb195fc 100644 --- a/fs/ocfs2/file.c +++ b/fs/ocfs2/file.c @@ -1790,6 +1790,14 @@ int ocfs2_remove_inode_range(struct inode *inode, return 0; if (OCFS2_I(inode)->ip_dyn_features & OCFS2_INLINE_DATA_FL) { + int id_count = ocfs2_max_inline_data_with_xattr(inode->i_sb, di); + + if (byte_start > id_count || byte_start + byte_len > id_count) { + ret = -EINVAL; + mlog_errno(ret); + goto out; + } + ret = ocfs2_truncate_inline(inode, di_bh, byte_start, byte_start + byte_len, 0); if (ret) {