diff options
| author | Dan Engelbrecht <[email protected]> | 2024-09-05 16:55:34 +0200 |
|---|---|---|
| committer | GitHub Enterprise <[email protected]> | 2024-09-05 16:55:34 +0200 |
| commit | f02a16df0dfa0177ee1a3966cf2df028bd4089ab (patch) | |
| tree | 09a4462d04f5d3b6ceeeca9c5e59fdd1e7b521c4 /src/zenserver | |
| parent | Added github action to mirror releases to github.com (#144) (diff) | |
| download | zen-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.cpp | 10 |
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; } } |