Multiple entries with same UUID - is this a corrupt database?

2014-07-09
2014-07-19
  • Philipp Crocoll

    Philipp Crocoll - 2014-07-09

    Several users of my app Keepass2Android are reporting corrupt display of their database (https://keepass2android.codeplex.com/workitem/46). Finally, one of the users sent me a file demonstrating the issue. It turns out that the database has several entries with the same UUID (and I suspect it's the same for the other users because of the symptoms they describe). The same problem occurs when loading the databases in Keepassdroid. This is because both Keepassdroid and Keepass2Android use the UUID as a unique key in some kind of HashMap/Dictionary to store the entries.

    I thought a UUID is really unique. Now it's not. The question is: Is this a corrupt database or does Keepass 2 allow duplicate UUIDs? (Keepass 2 doesn't complain and doesn't seem to fail in any way because of it.)

    If this is a corrupt database: Is there a simple way how users can fix their databases?
    If this is allowed, I will modify my app of course...

    (Background: It seems that all these databases were edited or created with Minikeepass on iOS.)

     
  • Dominik Reichl

    Dominik Reichl - 2014-07-09

    UUIDs must be unique. KeePass relies on this in various places (synchronization, ...).

    I took great care of ensuring the uniqueness of UUIDs in KeePass (e.g. in debug mode, it checks the UUID uniqueness each time a database is saved or synchronized). Anyway, if you find a way to create entries/groups with duplicate UUIDs using KeePass, please let me know and I'll fix it.

    In order to rebuild a database containing duplicate UUIDs, I'd suggest the following: create a new database, go 'File' -> 'Import', select 'KeePass KDBX (2.x)' as format, choose the corrupted database file, click [OK], and select 'Create new IDs' as import behavior.

    Best regards,
    Dominik

     
  • Philipp Crocoll

    Philipp Crocoll - 2014-07-19

    thanks for your answer and your suggestions how to fix the database.

    For reference: I have filed a bug at the MiniKeePass website (https://github.com/MiniKeePass/MiniKeePass/issues/311) as it seems that these database were all created with that app.

     

Log in to post a comment.

Get latest updates about Open Source Projects, Conferences and News.

Sign up for the SourceForge newsletter:





No, thanks