ext4fs: Fix: Read outside partition error
authorTony Dinh <mibodhi@gmail.com>
Fri, 23 May 2025 05:02:01 +0000 (22:02 -0700)
committerTom Rini <trini@konsulko.com>
Fri, 23 May 2025 16:42:49 +0000 (10:42 -0600)
commitdf2ed552f0b05591090369a7fe7ddc92439dea5c
treef523bb31da61aeba794347acb250c9bac962ad77
parentec3ce603cd9840492d60230f164533ad4574489f
ext4fs: Fix: Read outside partition error

Use lbaint_t for blknr to avoid overflow in ext4fs_read_file().

Background:

blknr (block number) used in ext4fs_read_file() could be increased to a
very large value and causes a wrap around at 32 bit signed integer max,
thus becomes negative. This results in an out-of-normal range for sector
number (during the assignment delayed_start = blknr) where delayed_start
sector is typed uint64 lbaint_t. This causes the "Read outside partition"
error.

This patch was tested on the Synology DS116 (Armada 385) board, and a
4TB Seagate HDD.

Signed-off-by: Tony Dinh <mibodhi@gmail.com>
fs/ext4/ext4fs.c