On Tue, Feb 25, 2020 at 02:53:08PM -0500, Qian Cai wrote: > xfs_da3_path_shift() could see state->path.blk[-1] because > state->path.active == 1 is a valid state when it tries to add an entry > to a single dir leaf block and then to shift forward to see if > there's a sibling block that would be a better place to put the new > entry. I think this needs a better explanation. Something like: In xfs_da3_path_shift() blk can be assigned to state->path.blk[-1] if state->path.active is 1 (which is a valid state) when it tries to add an entry > to a single dir leaf block and then to shift forward to see if there's a sibling block that would be a better place to put the new entry. This causes a KASAN warning given negative array indices are undefined behavior in C. In practice the warning is entirely harmless given that blk is never dereference in this case, but it is still better to fix up the warning and slightly improve the code.