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:
authorFelix Geyer <debfx@fobos.de>2016-01-29 01:07:04 +0300
committerFelix Geyer <debfx@fobos.de>2016-01-29 01:07:04 +0300
commiteb56bd8973859e49384ada8757639466f483c22c (patch)
tree9dc5201e8d4fec492903abf77ed0e39e6ce916bd /src/format/KeePass2Reader.cpp
parent93585aded73b122107897a27246d58630c3c0ed3 (diff)
Add repair functionality to strip invalid XML chars.
Refs #392
Diffstat (limited to 'src/format/KeePass2Reader.cpp')
-rw-r--r--src/format/KeePass2Reader.cpp14
1 files changed, 12 insertions, 2 deletions
diff --git a/src/format/KeePass2Reader.cpp b/src/format/KeePass2Reader.cpp
index adde8cdbe..d1ca9ed9c 100644
--- a/src/format/KeePass2Reader.cpp
+++ b/src/format/KeePass2Reader.cpp
@@ -43,7 +43,7 @@ KeePass2Reader::KeePass2Reader()
{
}
-Database* KeePass2Reader::readDatabase(QIODevice* device, const CompositeKey& key)
+Database* KeePass2Reader::readDatabase(QIODevice* device, const CompositeKey& key, bool keepDatabase)
{
QScopedPointer<Database> db(new Database());
m_db = db.data();
@@ -178,7 +178,12 @@ Database* KeePass2Reader::readDatabase(QIODevice* device, const CompositeKey& ke
if (xmlReader.hasError()) {
raiseError(xmlReader.errorString());
- return Q_NULLPTR;
+ if (keepDatabase) {
+ return db.take();
+ }
+ else {
+ return Q_NULLPTR;
+ }
}
Q_ASSERT(version < 0x00030001 || !xmlReader.headerHash().isEmpty());
@@ -232,6 +237,11 @@ QByteArray KeePass2Reader::xmlData()
return m_xmlData;
}
+QByteArray KeePass2Reader::streamKey()
+{
+ return m_protectedStreamKey;
+}
+
void KeePass2Reader::raiseError(const QString& errorMessage)
{
m_error = true;