btrfs: check file extent backref offset underflow
Offset field in data extent backref can underflow if clone range ioctl is used. We can reliably detect the underflow because max file size is limited to 2^63 and max data extent size is limited by block group size. Signed-off-by: Zheng Yan <zheng.z.yan@intel.com>
This commit is contained in:
Родитель
016fc6a63e
Коммит
84850e8d8a
|
@ -3322,8 +3322,11 @@ static int find_data_references(struct reloc_control *rc,
|
|||
}
|
||||
|
||||
key.objectid = ref_objectid;
|
||||
key.offset = ref_offset;
|
||||
key.type = BTRFS_EXTENT_DATA_KEY;
|
||||
if (ref_offset > ((u64)-1 << 32))
|
||||
key.offset = 0;
|
||||
else
|
||||
key.offset = ref_offset;
|
||||
|
||||
path->search_commit_root = 1;
|
||||
path->skip_locking = 1;
|
||||
|
|
Загрузка…
Ссылка в новой задаче