|
@@ -167,7 +167,8 @@ xfs_iformat_fork(
|
|
|
}
|
|
|
|
|
|
di_size = be64_to_cpu(dip->di_size);
|
|
|
- if (unlikely(di_size > XFS_DFORK_DSIZE(dip, ip->i_mount))) {
|
|
|
+ if (unlikely(di_size < 0 ||
|
|
|
+ di_size > XFS_DFORK_DSIZE(dip, ip->i_mount))) {
|
|
|
xfs_warn(ip->i_mount,
|
|
|
"corrupt inode %Lu (bad size %Ld for local inode).",
|
|
|
(unsigned long long) ip->i_ino,
|