Bluetooth: Mesh: Avoid divizion by zero when chunk_size is zero

Avoid divizion by zero when chunk_size is zero.

Coverity-CID: 316406, GitHub issue #58531

Signed-off-by: Pavel Vasilyev <pavel.vasilyev@nordicsemi.no>
This commit is contained in:
Pavel Vasilyev 2023-06-01 16:56:26 +02:00 committed by Anas Nashif
commit 2b3175f2fa

View file

@ -621,9 +621,9 @@ static int handle_block_start(struct bt_mesh_model *mod, struct bt_mesh_msg_ctx
if (!chunk_size || chunk_size > max_chunk_size(srv) || if (!chunk_size || chunk_size > max_chunk_size(srv) ||
(DIV_ROUND_UP((1 << srv->state.xfer.block_size_log), chunk_size) > (DIV_ROUND_UP((1 << srv->state.xfer.block_size_log), chunk_size) >
max_chunk_count(srv))) { max_chunk_count(srv))) {
LOG_WRN("Invalid chunk size: (chunk size: %u, max: %u, ceil: %u, count: %u)", LOG_WRN("Invalid chunk size: (chunk size: %u, max: %u, block log: %u, count: %u)",
chunk_size, max_chunk_size(srv), chunk_size, max_chunk_size(srv),
DIV_ROUND_UP((1 << srv->state.xfer.block_size_log), chunk_size), srv->state.xfer.block_size_log,
max_chunk_count(srv)); max_chunk_count(srv));
status = BT_MESH_BLOB_ERR_INVALID_CHUNK_SIZE; status = BT_MESH_BLOB_ERR_INVALID_CHUNK_SIZE;
goto rsp; goto rsp;