diff --git a/sys/vfs/hammer2/hammer2_freemap.c b/sys/vfs/hammer2/hammer2_freemap.c --- a/sys/vfs/hammer2/hammer2_freemap.c +++ b/sys/vfs/hammer2/hammer2_freemap.c @@ -975,6 +975,11 @@ mtid = hammer2_trans_sub(hmp->spmp); radix = (int)data_off & HAMMER2_OFF_MASK_RADIX; + if (radix == 0 || radix > HAMMER2_RADIX_MAX) { + kprintf("hammer2_freemap_adjust: %016jx: ignoring bad radix %d\n", + (intmax_t)data_off, radix); + return; + } KKASSERT(radix != 0); data_off &= ~HAMMER2_OFF_MASK_RADIX; KKASSERT(radix <= HAMMER2_RADIX_MAX);