From f8bea82ce881f33f6be509edafb1cdecdc0e66c9 Mon Sep 17 00:00:00 2001 From: Felix Geyer Date: Sat, 19 May 2012 15:05:07 +0200 Subject: [PATCH] Emit error on invalid HistoryMaxItems and HistoryMaxSize values. --- src/format/KeePass2XmlReader.cpp | 16 ++++++++++++++-- 1 file changed, 14 insertions(+), 2 deletions(-) diff --git a/src/format/KeePass2XmlReader.cpp b/src/format/KeePass2XmlReader.cpp index 8d06deae5..2132b7933 100644 --- a/src/format/KeePass2XmlReader.cpp +++ b/src/format/KeePass2XmlReader.cpp @@ -219,10 +219,22 @@ void KeePass2XmlReader::parseMeta() m_meta->setLastTopVisibleGroup(getGroup(readUuid())); } else if (m_xml.name() == "HistoryMaxItems") { - m_meta->setHistoryMaxItems(readNumber()); + int value = readNumber(); + if (value >= -1) { + m_meta->setHistoryMaxItems(value); + } + else { + raiseError(18); + } } else if (m_xml.name() == "HistoryMaxSize") { - m_meta->setHistoryMaxSize(readNumber()); + int value = readNumber(); + if (value >= -1) { + m_meta->setHistoryMaxSize(value); + } + else { + raiseError(19); + } } else if (m_xml.name() == "Binaries") { parseBinaries();