Files
mirror_zfs/module/zfs
Richard Yao fa46802585 Fix possible bad bit shift in dnode_next_offset_level()
031d7c2fe6 did not handle reverse
iteration, such that the original issue theoretically could still occur.

Note that contrary to the claim in the ZFS disk format specification
that a maximum of 6 levels are possible, 9 levels are possible with
recordsize=512 and and indirect block size of 16KB. In this unusual
configuration, span will be 65. The maximum size of span at 70 can be
reached at recordsize=16K and an indirect blocksize of 16KB.

When we are at this indirection level and are traversing backward, the
minimum value is start, but we cannot calculate that with 64-bit
arithmetic, so we avoid the calculation and instead rely on the earlier
statement that did `*offset = start;`.

Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov>
Signed-off-by: Richard Yao <richard.yao@alumni.stonybrook.edu>
Reported-by: Coverity (CID-1466214)
Closes #14618
2023-03-16 14:27:49 -07:00
..
2022-03-15 15:13:42 -07:00
2023-03-08 11:17:23 -08:00
2022-03-15 15:13:42 -07:00
2023-01-10 13:39:22 -08:00
2022-10-20 11:57:15 -07:00
2022-10-29 13:05:11 -07:00
2023-03-10 11:59:53 -08:00
2023-03-14 15:25:50 -07:00
2023-03-10 11:59:53 -08:00
2023-03-14 15:25:50 -07:00
2023-03-14 15:25:50 -07:00
2023-03-14 15:59:58 -07:00
2023-03-14 15:25:50 -07:00
2022-03-15 15:13:42 -07:00
2022-01-07 10:36:49 -08:00
2022-01-12 16:14:36 -08:00
2019-06-19 09:48:12 -07:00
2022-10-12 11:25:18 -07:00
2022-03-15 15:13:42 -07:00
2023-03-14 15:25:50 -07:00
2023-03-14 15:25:50 -07:00
2023-03-14 15:25:50 -07:00
2023-03-14 15:25:50 -07:00
2023-03-14 15:25:50 -07:00
2022-10-27 09:54:54 -07:00
2023-03-14 15:25:50 -07:00
2023-03-14 15:25:50 -07:00
2023-03-14 15:25:50 -07:00
2022-09-02 13:31:19 -07:00
2023-03-14 15:25:50 -07:00
2023-03-14 15:25:50 -07:00
2023-03-14 15:25:50 -07:00
2023-03-10 11:59:53 -08:00
2023-03-10 11:59:53 -08:00
2022-11-29 09:26:03 -08:00
2023-03-10 11:59:53 -08:00