diff --git a/fs/udf/inode.c b/fs/udf/inode.c index e98c198f85b964cb1d11e8c99f519d0b21b37459..8b842d33a9e05959fb1fc0d44908187cd19dec21 100644 --- a/fs/udf/inode.c +++ b/fs/udf/inode.c @@ -2264,6 +2264,9 @@ int udf_current_aext(struct inode *inode, struct extent_position *epos, if (check_add_overflow(sizeof(struct allocExtDesc), le32_to_cpu(header->lengthAllocDescs), &alen)) return -1; + + if (alen > epos->bh->b_size) + return -1; } switch (iinfo->i_alloc_type) {