Welcome to mirror list, hosted at ThFree Co, Russian Federation.

github.com/keepassxreboot/keepassxc.git - Unnamed repository; edit this file 'description' to name the repository.
summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorvarjolintu <sami.vanttinen@protonmail.com>2020-05-01 11:07:14 +0300
committerJonathan White <support@dmapps.us>2020-05-17 00:41:10 +0300
commite367c6df9584e6a45c9e462fdfa31603a2e21cde (patch)
treef5af852ef88822b540aa759af80a41374c163acd /src/core/Merger.cpp
parent48bf4fb85d05c6a7b9540dc71d9f52c7e32c4554 (diff)
Fix merging browser keys
* Introduce protected custom data function to prevent loss during merge operations
Diffstat (limited to 'src/core/Merger.cpp')
-rw-r--r--src/core/Merger.cpp4
1 files changed, 3 insertions, 1 deletions
diff --git a/src/core/Merger.cpp b/src/core/Merger.cpp
index 4cce997bf..2becd8a68 100644
--- a/src/core/Merger.cpp
+++ b/src/core/Merger.cpp
@@ -632,7 +632,9 @@ Merger::ChangeList Merger::mergeMetadata(const MergeContext& context)
// Check missing keys from source. Remove those from target
for (const auto& key : targetCustomDataKeys) {
- if (!sourceMetadata->customData()->contains(key)) {
+ // Do not remove protected custom data
+ if (!sourceMetadata->customData()->contains(key)
+ && !sourceMetadata->customData()->isProtectedCustomData(key)) {
auto value = targetMetadata->customData()->value(key);
targetMetadata->customData()->remove(key);
changes << tr("Removed custom data %1 [%2]").arg(key, value);