|
@@ -2585,6 +2585,10 @@ static int crypt_ctr_optional(struct dm_target *ti, unsigned int argc, char **ar
|
|
|
ti->error = "Invalid feature value for sector_size";
|
|
|
return -EINVAL;
|
|
|
}
|
|
|
+ if (ti->len & ((cc->sector_size >> SECTOR_SHIFT) - 1)) {
|
|
|
+ ti->error = "Device size is not multiple of sector_size feature";
|
|
|
+ return -EINVAL;
|
|
|
+ }
|
|
|
cc->sector_shift = __ffs(cc->sector_size) - SECTOR_SHIFT;
|
|
|
} else if (!strcasecmp(opt_string, "iv_large_sectors"))
|
|
|
set_bit(CRYPT_IV_LARGE_SECTORS, &cc->cipher_flags);
|