|
@@ -869,6 +869,12 @@ ext4_find_extent(struct inode *inode, ext4_lblk_t block,
|
|
|
|
|
|
|
|
eh = ext_inode_hdr(inode);
|
|
eh = ext_inode_hdr(inode);
|
|
|
depth = ext_depth(inode);
|
|
depth = ext_depth(inode);
|
|
|
|
|
+ if (depth < 0 || depth > EXT4_MAX_EXTENT_DEPTH) {
|
|
|
|
|
+ EXT4_ERROR_INODE(inode, "inode has invalid extent depth: %d",
|
|
|
|
|
+ depth);
|
|
|
|
|
+ ret = -EFSCORRUPTED;
|
|
|
|
|
+ goto err;
|
|
|
|
|
+ }
|
|
|
|
|
|
|
|
if (path) {
|
|
if (path) {
|
|
|
ext4_ext_drop_refs(path);
|
|
ext4_ext_drop_refs(path);
|