summaryrefslogtreecommitdiff
path: root/plugins/Dbx_mdbx/src/dbcrypt.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'plugins/Dbx_mdbx/src/dbcrypt.cpp')
-rw-r--r--plugins/Dbx_mdbx/src/dbcrypt.cpp9
1 files changed, 6 insertions, 3 deletions
diff --git a/plugins/Dbx_mdbx/src/dbcrypt.cpp b/plugins/Dbx_mdbx/src/dbcrypt.cpp
index 31c2a24b76..0a6585e565 100644
--- a/plugins/Dbx_mdbx/src/dbcrypt.cpp
+++ b/plugins/Dbx_mdbx/src/dbcrypt.cpp
@@ -201,10 +201,9 @@ int CDbxMDBX::EnableEncryption(bool bEncrypted)
dwNewFlags = dbEvent->flags | DBEF_ENCRYPTED;
}
- txn_ptr trnlck(StartTran());
data.iov_len = sizeof(DBEvent) + nNewBlob;
- if (mdbx_put(trnlck, m_dbEvents, &key, &data, MDBX_RESERVE) != MDBX_SUCCESS)
- return 1;
+ mir_ptr<BYTE> pData((BYTE*)mir_alloc(data.iov_len));
+ data.iov_base = pData.get();
DBEvent *pNewDBEvent = (DBEvent *)data.iov_base;
*pNewDBEvent = *dbEvent;
@@ -212,6 +211,10 @@ int CDbxMDBX::EnableEncryption(bool bEncrypted)
pNewDBEvent->flags = dwNewFlags;
memcpy(pNewDBEvent + 1, pNewBlob, nNewBlob);
+ txn_ptr trnlck(StartTran());
+ if (mdbx_put(trnlck, m_dbEvents, &key, &data, 0) != MDBX_SUCCESS)
+ return 1;
+
if (trnlck.commit() != MDBX_SUCCESS)
return 1;
}