From a85199d2d4034ac7f77ad67d60ee42e168ba5a4e Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E6=9C=A8=E5=A4=B4=E4=BA=91?= Date: Fri, 7 May 2021 16:47:49 +0800 Subject: [PATCH] Update ipc.cpp fix bug: id == invalid_value not processed. --- src/ipc.cpp | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/src/ipc.cpp b/src/ipc.cpp index 869eb7f..12a629b 100755 --- a/src/ipc.cpp +++ b/src/ipc.cpp @@ -104,6 +104,7 @@ struct chunk_info_t { } ipc::byte_t *at(std::size_t chunk_size, std::size_t id) noexcept { + if (id == ipc::invalid_value) return nullptr; return reinterpret_cast(this + 1) + (chunks_elem_size(chunk_size) * id); } }; @@ -168,6 +169,11 @@ std::pair apply_storage(std::size_t conn_count, std::size_t } void *find_storage(std::size_t id, std::size_t size) { + if (id == ipc::invalid_value) { + ipc::error("[find_storage] id is invalid: id = %zd, size = %zd\n", id, size); + return nullptr; + } + std::size_t chunk_size = calc_chunk_size(size); auto & chunk_shm = chunk_storage(chunk_size);