From f2150e3d8578bd97a2d3d17fbe8adcfeb8a1d7df Mon Sep 17 00:00:00 2001 From: Christoph Walcher Date: Fri, 28 Aug 2020 02:15:44 +0200 Subject: [PATCH] Early return in readHeaderField In the old version the outer loop won't terminate if `EndOfHeader` is a zero sized field. --- .../kunzisoft/keepass/database/file/DatabaseHeaderKDBX.kt | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/kunzisoft/keepass/database/file/DatabaseHeaderKDBX.kt b/app/src/main/java/com/kunzisoft/keepass/database/file/DatabaseHeaderKDBX.kt index 3152cd4dd..6bab5f387 100644 --- a/app/src/main/java/com/kunzisoft/keepass/database/file/DatabaseHeaderKDBX.kt +++ b/app/src/main/java/com/kunzisoft/keepass/database/file/DatabaseHeaderKDBX.kt @@ -192,10 +192,11 @@ class DatabaseHeaderKDBX(private val databaseV4: DatabaseKDBX) : DatabaseHeader( } } + if (fieldID == PwDbHeaderV4Fields.EndOfHeader) + return true + if (fieldData != null) when (fieldID) { - PwDbHeaderV4Fields.EndOfHeader -> return true - PwDbHeaderV4Fields.CipherID -> setCipher(fieldData) PwDbHeaderV4Fields.CompressionFlags -> setCompressionFlags(fieldData)