Skip to content

Commit 64e77fd

Browse files
amotintonyhutter
authored andcommitted
Fix null dereference in spa_vdev_remove_cancel_sync()
We don't really need to access space map to know where the metaslab ends, while msp->ms_sm might be NULL. Reviewed-by: Brian Behlendorf <behlendorf1@llnl.gov> Reviewed-by: Rob Norris <robn@despairlabs.com> Reviewed by: Igor Kozhukhov <ikozhukhov@gmail.com> Signed-off-by: Alexander Motin <mav@FreeBSD.org> Sponsored by: iXsystems, Inc. Fixes #17164 Fixes #17359 Closes #17361 (cherry picked from commit 5c30b24)
1 parent fd13ad0 commit 64e77fd

File tree

1 file changed

+3
-4
lines changed

1 file changed

+3
-4
lines changed

module/zfs/vdev_removal.c

Lines changed: 3 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1931,10 +1931,9 @@ spa_vdev_remove_cancel_sync(void *arg, dmu_tx_t *tx)
19311931
* because we have not allocated mappings for it yet.
19321932
*/
19331933
uint64_t syncd = vdev_indirect_mapping_max_offset(vim);
1934-
uint64_t sm_end = msp->ms_sm->sm_start +
1935-
msp->ms_sm->sm_size;
1936-
if (sm_end > syncd)
1937-
zfs_range_tree_clear(segs, syncd, sm_end - syncd);
1934+
uint64_t ms_end = msp->ms_start + msp->ms_size;
1935+
if (ms_end > syncd)
1936+
zfs_range_tree_clear(segs, syncd, ms_end - syncd);
19381937

19391938
zfs_range_tree_vacate(segs, free_mapped_segment_cb, vd);
19401939
}

0 commit comments

Comments
 (0)