From 4f616e87b403d6988b555e4454247c339d82f363 Mon Sep 17 00:00:00 2001 From: Rongqi Sun Date: Wed, 13 Dec 2023 11:30:11 +0800 Subject: [PATCH] os/memstore: deep copy on partial bufferptrs on setattrs Signed-off-by: Rongqi Sun --- src/os/memstore/MemStore.cc | 10 ++++++++-- 1 file changed, 8 insertions(+), 2 deletions(-) diff --git a/src/os/memstore/MemStore.cc b/src/os/memstore/MemStore.cc index 99e99dcba04..35711517708 100644 --- a/src/os/memstore/MemStore.cc +++ b/src/os/memstore/MemStore.cc @@ -1131,8 +1131,14 @@ int MemStore::_setattrs(const coll_t& cid, const ghobject_t& oid, if (!o) return -ENOENT; std::lock_guard lock{o->xattr_mutex}; - for (auto p = aset.begin(); p != aset.end(); ++p) - o->xattr[p->first] = p->second; + for (auto p = aset.begin(); p != aset.end(); ++p) { + if (p->second.is_partial()) { + o->xattr[p->first] = bufferptr(p->second.c_str(), p->second.length()); + } else { + o->xattr[p->first] = p->second; + } + } + return 0; } -- 2.39.5