dm clone: Add missing casts to prevent overflows and data corruption
authorNikos Tsironis <ntsironis@arrikto.com>
Fri, 27 Mar 2020 14:01:10 +0000 (16:01 +0200)
committerMike Snitzer <snitzer@redhat.com>
Fri, 27 Mar 2020 18:42:25 +0000 (14:42 -0400)
commit9fc06ff56845cc5ccafec52f545fc2e08d22f849
treea1d17e2eba1e558cbcccf03d83ed817356a45d82
parentcd481c12269b4d276f1a52eda0ebd419079bfe3a
dm clone: Add missing casts to prevent overflows and data corruption

Add missing casts when converting from regions to sectors.

In case BITS_PER_LONG == 32, the lack of the appropriate casts can lead
to overflows and miscalculation of the device sector.

As a result, we could end up discarding and/or copying the wrong parts
of the device, thus corrupting the device's data.

Fixes: 7431b7835f55 ("dm: add clone target")
Cc: stable@vger.kernel.org # v5.4+
Signed-off-by: Nikos Tsironis <ntsironis@arrikto.com>
Signed-off-by: Mike Snitzer <snitzer@redhat.com>
drivers/md/dm-clone-target.c