On Wed, Apr 28, 2021 at 03:36:02PM +0000, Liam Howlett wrote: > +static void mas_set_height(struct ma_state *mas) > +{ > + unsigned int new_flags = mas->tree->ma_flags; > + > + new_flags &= ~MAPLE_HEIGHT_MASK; > + new_flags |= mas->depth << MAPLE_HEIGHT_OFFSET; > + mas->tree->ma_flags = new_flags; > +} This goes sideways when mas->depth is too large; I didn't quickly see an assertion / range checks for mas->depth anywhere.