Re: [PATCH v2] nilfs2: validate file block counts during recovery
From: Viacheslav Dubeyko
Date: Wed Sep 16 2026 - 15:13:47 EST
On Tue, 2026-09-15 at 16:57 -0300, Aldo Ariel Panzardo wrote:
> nilfs_scan_dsync_log() trusts the block counts in each on-disk file
> information entry. If fi_ndatablk is greater than fi_nblocks, the
> data
> block loop can consume excessive summary entries and the later
> subtraction
> used to derive the number of node blocks underflows.
>
> Reject inconsistent file information entries before consuming their
> block
> information.
>
> Fixes: 0f3e1c7f23f8 ("nilfs2: recovery functions")
> Cc: stable@xxxxxxxxxxxxxxx
> Signed-off-by: Aldo Ariel Panzardo <qwe.aldo@xxxxxxxxx>
> ---
> fs/nilfs2/recovery.c | 4 ++++
> 1 file changed, 4 insertions(+)
>
> diff --git a/fs/nilfs2/recovery.c b/fs/nilfs2/recovery.c
> index 4d5a6aa521..28200cef4d 100644
> --- a/fs/nilfs2/recovery.c
> +++ b/fs/nilfs2/recovery.c
> @@ -359,6 +359,10 @@ static int nilfs_scan_dsync_log(struct the_nilfs
> *nilfs, sector_t start_blocknr,
> ino = le64_to_cpu(finfo->fi_ino);
> nblocks = le32_to_cpu(finfo->fi_nblocks);
> ndatablk = le32_to_cpu(finfo->fi_ndatablk);
> + if (ndatablk > nblocks) {
> + err = -EIO;
> + goto out;
> + }
> nnodeblk = nblocks - ndatablk;
>
> while (ndatablk-- > 0) {
Looks good.
Reviewed-by: Viacheslav Dubeyko <slava@xxxxxxxxxxx>
Thanks,
Slava.