From 7e7b95eeb4d0480af0bbdbc99949321c73c2bcf1 Mon Sep 17 00:00:00 2001 From: ston3lu Date: Tue, 23 Dec 2025 02:47:52 +0000 Subject: [PATCH] Fix void* arithmetic in memset/memcpy I accept Vitastor CLA agreement: https://git.yourcmc.ru/vitalif/vitastor/src/branch/master/CLA-en.md --- src/client/cluster_client.cpp | 2 +- src/test/ringloop_mock.cpp | 6 +++--- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/src/client/cluster_client.cpp b/src/client/cluster_client.cpp index f682836c..b0a32d98 100644 --- a/src/client/cluster_client.cpp +++ b/src/client/cluster_client.cpp @@ -1257,7 +1257,7 @@ void cluster_client_t::slice_rw(cluster_op_t *op) { op->bitmap_buf = realloc_or_die(op->bitmap_buf, bitmap_mem); op->part_bitmaps = (uint8_t*)op->bitmap_buf + object_bitmap_size; - memset(op->bitmap_buf+op->bitmap_buf_size, 0, bitmap_mem-op->bitmap_buf_size); + memset((uint8_t*)op->bitmap_buf+op->bitmap_buf_size, 0, bitmap_mem-op->bitmap_buf_size); op->bitmap_buf_size = bitmap_mem; } } diff --git a/src/test/ringloop_mock.cpp b/src/test/ringloop_mock.cpp index fc718bb0..f2cc37fa 100644 --- a/src/test/ringloop_mock.cpp +++ b/src/test/ringloop_mock.cpp @@ -199,7 +199,7 @@ void disk_mock_t::erase_buffers(uint64_t begin, uint64_t end) { // Cut beginning & end & stop uint8_t *ce = (uint8_t*)malloc_or_die(be-end); - memcpy(ce, it->second.iov_base + (end-bs), be-end); + memcpy(ce, (uint8_t*)it->second.iov_base + (end-bs), be-end); uint8_t *cs = (uint8_t*)realloc(it->second.iov_base, begin-bs); if (!cs) throw std::bad_alloc(); @@ -221,7 +221,7 @@ void disk_mock_t::erase_buffers(uint64_t begin, uint64_t end) // Cut end & stop assert(be > end); uint8_t *ce = (uint8_t*)malloc_or_die(be-end); - memcpy(ce, it->second.iov_base + (end-bs), be-end); + memcpy(ce, (uint8_t*)it->second.iov_base + (end-bs), be-end); buffers[be] = (iovec){ .iov_base = ce, .iov_len = be-end }; buffers.erase(it); break; @@ -308,7 +308,7 @@ void disk_mock_t::read_item(uint8_t *to, uint64_t offset, uint64_t len) last = offset; } uint64_t cur_end = be < offset+len ? be : offset+len; - memcpy(to+last-offset, it->second.iov_base+last-bs, cur_end-last); + memcpy(to+last-offset, (uint8_t*)it->second.iov_base+last-bs, cur_end-last); last = be; } if (last < offset+len)