]> git.ipfire.org Git - thirdparty/kernel/stable.git/commitdiff
ceph: fix possible integer overflow in ceph_zero_objects()
authorDmitry Kandybka <d.kandybka@gmail.com>
Tue, 22 Apr 2025 09:32:04 +0000 (12:32 +0300)
committerGreg Kroah-Hartman <gregkh@linuxfoundation.org>
Sun, 6 Jul 2025 09:00:08 +0000 (11:00 +0200)
[ Upstream commit 0abd87942e0c93964e93224836944712feba1d91 ]

In 'ceph_zero_objects', promote 'object_size' to 'u64' to avoid possible
integer overflow.

Compile tested only.

Found by Linux Verification Center (linuxtesting.org) with SVACE.

Signed-off-by: Dmitry Kandybka <d.kandybka@gmail.com>
Reviewed-by: Viacheslav Dubeyko <Slava.Dubeyko@ibm.com>
Signed-off-by: Ilya Dryomov <idryomov@gmail.com>
Signed-off-by: Sasha Levin <sashal@kernel.org>
fs/ceph/file.c

index a03b11cf788721b2d548f2b931c13561e5608fd7..e12657b4c3e0422b2595442f2da804e5e3cc2d4e 100644 (file)
@@ -2513,7 +2513,7 @@ static int ceph_zero_objects(struct inode *inode, loff_t offset, loff_t length)
        s32 stripe_unit = ci->i_layout.stripe_unit;
        s32 stripe_count = ci->i_layout.stripe_count;
        s32 object_size = ci->i_layout.object_size;
-       u64 object_set_size = object_size * stripe_count;
+       u64 object_set_size = (u64) object_size * stripe_count;
        u64 nearly, t;
 
        /* round offset up to next period boundary */