|
@@ -1069,6 +1069,12 @@ static int iterate_dir_item(struct btrfs_root *root, struct btrfs_path *path,
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ ret = btrfs_is_name_len_valid(eb, path->slots[0],
|
|
|
|
+ (unsigned long)(di + 1), name_len + data_len);
|
|
|
|
+ if (!ret) {
|
|
|
|
+ ret = -EIO;
|
|
|
|
+ goto out;
|
|
|
|
+ }
|
|
if (name_len + data_len > buf_len) {
|
|
if (name_len + data_len > buf_len) {
|
|
buf_len = name_len + data_len;
|
|
buf_len = name_len + data_len;
|
|
if (is_vmalloc_addr(buf)) {
|
|
if (is_vmalloc_addr(buf)) {
|