]> git.ipfire.org Git - thirdparty/kernel/stable.git/commit
dm-unstriped: cast an operand to sector_t to prevent potential uint32_t overflow
authorZichen Xie <zichenxie0106@gmail.com>
Mon, 21 Oct 2024 19:54:45 +0000 (14:54 -0500)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Thu, 14 Nov 2024 12:13:39 +0000 (13:13 +0100)
commitcd6a370d395a2af3a9d4211eb2bcf8105249695a
tree239dec0b1cf7b85e0a339ce10a7bc8c5a456aac9
parentfdef3b94dfebd57e3077a578b6e309a2bb6fa688
dm-unstriped: cast an operand to sector_t to prevent potential uint32_t overflow

commit 5a4510c762fc04c74cff264cd4d9e9f5bf364bae upstream.

This was found by a static analyzer.
There may be a potential integer overflow issue in
unstripe_ctr(). uc->unstripe_offset and uc->unstripe_width are
defined as "sector_t"(uint64_t), while uc->unstripe,
uc->chunk_size and uc->stripes are all defined as "uint32_t".
The result of the calculation will be limited to "uint32_t"
without correct casting.
So, we recommend adding an extra cast to prevent potential
integer overflow.

Fixes: 18a5bf270532 ("dm: add unstriped target")
Signed-off-by: Zichen Xie <zichenxie0106@gmail.com>
Signed-off-by: Mikulas Patocka <mpatocka@redhat.com>
Cc: stable@vger.kernel.org
Signed-off-by: Greg Kroah-Hartman <gregkh@linuxfoundation.org>
drivers/md/dm-unstripe.c