mirror of
https://github.com/torvalds/linux.git
synced 2026-07-27 17:47:41 +02:00
rbd: check snap_count against RBD_MAX_SNAP_COUNT
snap_count is u32 but the comparison is against a SIZE_MAX-derived value (~2^61 on 64-bit), which clang flags as always false with -Wtautological-constant-out-of-range-compare. The proper check here should be that snap_count does not go over RBD_MAX_SNAP_COUNT. Assisted-by: Opencode:Big-pickle Signed-off-by: Rosen Penev <rosenp@gmail.com> Reviewed-by: Alex Elder <elder@riscstar.com> Link: https://patch.msgid.link/20260530011255.52916-1-rosenp@gmail.com Signed-off-by: Jens Axboe <axboe@kernel.dk>
This commit is contained in:
parent
2957771379
commit
2e1b3f4c51
|
|
@ -6094,12 +6094,9 @@ static int rbd_dev_v2_snap_context(struct rbd_device *rbd_dev,
|
|||
|
||||
/*
|
||||
* Make sure the reported number of snapshot ids wouldn't go
|
||||
* beyond the end of our buffer. But before checking that,
|
||||
* make sure the computed size of the snapshot context we
|
||||
* allocate is representable in a size_t.
|
||||
* beyond the end of our buffer.
|
||||
*/
|
||||
if (snap_count > (SIZE_MAX - sizeof (struct ceph_snap_context))
|
||||
/ sizeof (u64)) {
|
||||
if (snap_count > RBD_MAX_SNAP_COUNT) {
|
||||
ret = -EINVAL;
|
||||
goto out;
|
||||
}
|
||||
|
|
|
|||
Loading…
Reference in New Issue
Block a user