Commit d11502f
ext4: fix loff_t overflow in ext4_max_bitmap_size()
commit 75ca6ad upstream.
We should use unsigned long long rather than loff_t to avoid
overflow in ext4_max_bitmap_size() for comparison before returning.
w/o this patch sbi->s_bitmap_maxbytes was becoming a negative
value due to overflow of upper_limit (with has_huge_files as true)
Below is a quick test to trigger it on a 64KB pagesize system.
sudo mkfs.ext4 -b 65536 -O ^has_extents,^64bit /dev/loop2
sudo mount /dev/loop2 /mnt
sudo echo "hello" > /mnt/hello -> This will error out with
"echo: write error: File too large"
Signed-off-by: Ritesh Harjani <riteshh@linux.ibm.com>
Reviewed-by: Jan Kara <jack@suse.cz>
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Cc: stable@kernel.org
Link: https://lore.kernel.org/r/594f409e2c543e90fd836b78188dfa5c575065ba.1622867594.git.riteshh@linux.ibm.com
Signed-off-by: Theodore Ts'o <tytso@mit.edu>
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>1 parent 7cea848 commit d11502f
1 file changed
+5
-5
lines changed| Original file line number | Diff line number | Diff line change | |
|---|---|---|---|
| |||
3194 | 3194 | | |
3195 | 3195 | | |
3196 | 3196 | | |
3197 | | - | |
| 3197 | + | |
3198 | 3198 | | |
3199 | | - | |
3200 | | - | |
| 3199 | + | |
| 3200 | + | |
| 3201 | + | |
3201 | 3202 | | |
3202 | 3203 | | |
3203 | 3204 | | |
3204 | 3205 | | |
3205 | 3206 | | |
3206 | 3207 | | |
3207 | | - | |
3208 | 3208 | | |
3209 | 3209 | | |
3210 | 3210 | | |
| |||
3247 | 3247 | | |
3248 | 3248 | | |
3249 | 3249 | | |
3250 | | - | |
| 3250 | + | |
3251 | 3251 | | |
3252 | 3252 | | |
3253 | 3253 | | |
| |||
0 commit comments