+3
−3
Loading
In function blob_free_cluster_msg(), ctx->cluster(U32) may get a number that exceeds U32_max. When the LBA (unit of blocklen) of the cluster to be released exceeds U32_max, data overflow occurs, and the cluster located in the LBA%U32_max will be released, resulting in data inconsistencies or coredump on bs_release_cluster():148. For example, if the blocklen of lvstore is 512 bytes, and the ctx->cluster type is U32, the maximum offset of the cluster that can be represented is only ((1<<32)-1)*512=2TB. If the LBA of cluster to release exceeded, the problem will occur. Fixes #3358 Change-Id: Idfe7a56f866321770c2a5f3d0189f2c0a42ac7b0 Signed-off-by:wangyalong <wang597672534@gmail.com> Reviewed-on: https://review.spdk.io/gerrit/c/spdk/spdk/+/23816 Community-CI: Mellanox Build Bot Tested-by:
SPDK CI Jenkins <sys_sgci@intel.com> Reviewed-by:
Changpeng Liu <changpeng.liu@intel.com> Reviewed-by:
Shuhei Matsumoto <smatsumoto@nvidia.com> Reviewed-by:
Mateusz Kozlowski <mateusz.kozlowski@solidigm.com>