aboutsummaryrefslogtreecommitdiff
path: root/src/zenserver
diff options
context:
space:
mode:
authorDan Engelbrecht <[email protected]>2024-09-05 16:55:34 +0200
committerGitHub Enterprise <[email protected]>2024-09-05 16:55:34 +0200
commitf02a16df0dfa0177ee1a3966cf2df028bd4089ab (patch)
tree09a4462d04f5d3b6ceeeca9c5e59fdd1e7b521c4 /src/zenserver
parentAdded github action to mirror releases to github.com (#144) (diff)
downloadzen-f02a16df0dfa0177ee1a3966cf2df028bd4089ab.tar.xz
zen-f02a16df0dfa0177ee1a3966cf2df028bd4089ab.zip
fix oplog instance leak in project store gc (#145)
Diffstat (limited to 'src/zenserver')
-rw-r--r--src/zenserver/projectstore/projectstore.cpp10
1 files changed, 7 insertions, 3 deletions
diff --git a/src/zenserver/projectstore/projectstore.cpp b/src/zenserver/projectstore/projectstore.cpp
index 984b749d0..7962c8cd1 100644
--- a/src/zenserver/projectstore/projectstore.cpp
+++ b/src/zenserver/projectstore/projectstore.cpp
@@ -5428,7 +5428,7 @@ public:
});
ProjectStore::Oplog* Oplog = nullptr;
- auto __ = MakeGuard([this, Oplog]() {
+ auto __ = MakeGuard([this, &Oplog]() {
if (Oplog != nullptr && m_OplogWithUpdateCapture == nullptr)
{
delete Oplog;
@@ -5503,10 +5503,14 @@ public:
{
ProjectStore::Oplog* Oplog =
new ProjectStore::Oplog(m_OplogId, m_Project.Get(), m_Project->m_CidStore, m_OplogBasePath, std::filesystem::path{});
+ auto __ = MakeGuard([Oplog]() {
+ if (Oplog != nullptr)
+ {
+ delete Oplog;
+ }
+ });
Oplog->Read();
- RwLock::SharedLockScope __(Oplog->m_OplogLock);
Oplog->GetAttachmentsLocked(m_References, m_ProjectStore.m_Config.StoreAttachmentMetaData);
- delete Oplog;
}
}