From 4a6e8b99f5171705466b5a9542b47a935cad793d Mon Sep 17 00:00:00 2001 From: Richard Yao Date: Wed, 14 Sep 2022 15:50:03 -0400 Subject: [PATCH] Add assertion to dsl_dataset_set_compression_sync Coverity pointed out that if we somehow receive SPA_FEATURE_NONE, we will use a negative number as an array index. A defensive assertion seems appropriate. Reviewed-by: Alexander Motin Reviewed-by: Neal Gompa Reviewed-by: Allan Jude Reviewed-by: Brian Behlendorf Signed-off-by: Richard Yao Closes #13872 --- module/zfs/dsl_dataset.c | 1 + 1 file changed, 1 insertion(+) diff --git a/module/zfs/dsl_dataset.c b/module/zfs/dsl_dataset.c index 44da6a3f0d..94b77aa1b7 100644 --- a/module/zfs/dsl_dataset.c +++ b/module/zfs/dsl_dataset.c @@ -4519,6 +4519,7 @@ dsl_dataset_set_compression_sync(void *arg, dmu_tx_t *tx) uint64_t compval = ZIO_COMPRESS_ALGO(ddsca->ddsca_value); spa_feature_t f = zio_compress_to_feature(compval); + ASSERT3S(f, !=, SPA_FEATURE_NONE); ASSERT3S(spa_feature_table[f].fi_type, ==, ZFEATURE_TYPE_BOOLEAN); VERIFY0(dsl_dataset_hold(dp, ddsca->ddsca_name, FTAG, &ds));