Skip to content

Commit a85199d

Browse files
authored
Update ipc.cpp
fix bug: id == invalid_value not processed.
1 parent 9aab0d4 commit a85199d

File tree

1 file changed

+6
-0
lines changed

1 file changed

+6
-0
lines changed

src/ipc.cpp

Lines changed: 6 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -104,6 +104,7 @@ struct chunk_info_t {
104104
}
105105

106106
ipc::byte_t *at(std::size_t chunk_size, std::size_t id) noexcept {
107+
if (id == ipc::invalid_value) return nullptr;
107108
return reinterpret_cast<ipc::byte_t *>(this + 1) + (chunks_elem_size(chunk_size) * id);
108109
}
109110
};
@@ -168,6 +169,11 @@ std::pair<std::size_t, void*> apply_storage(std::size_t conn_count, std::size_t
168169
}
169170

170171
void *find_storage(std::size_t id, std::size_t size) {
172+
if (id == ipc::invalid_value) {
173+
ipc::error("[find_storage] id is invalid: id = %zd, size = %zd\n", id, size);
174+
return nullptr;
175+
}
176+
171177
std::size_t chunk_size = calc_chunk_size(size);
172178
auto & chunk_shm = chunk_storage(chunk_size);
173179

0 commit comments

Comments
 (0)