提交 3f34885c 编写于 作者: K Kulikov Vasiliy 提交者: Alex Elder

xfs: fix unsigned underflow in xfs_free_eofblocks

map_len is unsigned. Checking map_len <= 0 is buggy when it should be
below zero. So, check exact expression instead of map_len.
Signed-off-by: NKulikov Vasiliy <segooon@gmail.com>
Reviewed-by: NChristoph Hellwig <hch@lst.de>
Signed-off-by: NDave Chinner <david@fromorbit.com>
上级 aea1b953
...@@ -589,9 +589,9 @@ xfs_free_eofblocks( ...@@ -589,9 +589,9 @@ xfs_free_eofblocks(
*/ */
end_fsb = XFS_B_TO_FSB(mp, ((xfs_ufsize_t)ip->i_size)); end_fsb = XFS_B_TO_FSB(mp, ((xfs_ufsize_t)ip->i_size));
last_fsb = XFS_B_TO_FSB(mp, (xfs_ufsize_t)XFS_MAXIOFFSET(mp)); last_fsb = XFS_B_TO_FSB(mp, (xfs_ufsize_t)XFS_MAXIOFFSET(mp));
map_len = last_fsb - end_fsb; if (last_fsb <= end_fsb)
if (map_len <= 0)
return 0; return 0;
map_len = last_fsb - end_fsb;
nimaps = 1; nimaps = 1;
xfs_ilock(ip, XFS_ILOCK_SHARED); xfs_ilock(ip, XFS_ILOCK_SHARED);
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册