keepassxreboot / keepassxc

KeePassXC is a cross-platform community-driven port of the Windows application “Keepass Password Safe”.
https://keepassxc.org/
Other
21.43k stars 1.48k forks source link

Fix entry notes reveal button requiring two clicks sometimes #11351

Closed droidmonkey closed 1 month ago

droidmonkey commented 1 month ago

Related to discussion in #11345

Testing strategy

Tested manually

Type of change

codecov[bot] commented 1 month ago

Codecov Report

All modified and coverable lines are covered by tests :white_check_mark:

Project coverage is 63.71%. Comparing base (740994e) to head (2f80b16). Report is 19 commits behind head on develop.

Additional details and impacted files ```diff @@ Coverage Diff @@ ## develop #11351 +/- ## =========================================== - Coverage 63.71% 63.71% -0.00% =========================================== Files 362 362 Lines 38000 38001 +1 =========================================== Hits 24211 24211 - Misses 13789 13790 +1 ```

:umbrella: View full report in Codecov by Sentry.
:loudspeaker: Have feedback on the report? Share it here.


🚨 Try these New Features:

varjolintu commented 1 month ago

Found this while testing this: https://github.com/keepassxreboot/keepassxc/issues/11352

varjolintu commented 1 month ago

Also found the following when debugging with ASAN enabled. Can you verify this happens to you too?

1) Edit entry, modify the note. 2) Press Apply and then OK. 3) Save the database -> ASAN hits a breakpoint. 4) If doing the same without Apply, everything is ok.

ASAN shows:

error: <user expression 1>:1:1: use of undeclared identifier 'username'    1 | username.d | ^

lldb) thread info -s
thread #7: tid = 0x2239c, 0x0000000106c65060 libclang_rt.asan_osx_dynamic.dylib`__asan::AsanDie(), name = 'Thread (pooled)', stop reason = Invalid memory access

{
  "access_size": 32,
  "access_type": 1,
  "address": 4387995934,
  "description": "unknown-crash",
  "instrumentation_class": "AddressSanitizer",
  "pc": 4408505784,
  "stop_type": "fatal_error"
}

And the call stack:

__asan::AsanDie() 0x0000000106c65060
SymmetricCipher::finish(QByteArray &) SymmetricCipher.cpp:115
SymmetricCipherStream::writeBlock(bool) SymmetricCipherStream.cpp:209
SymmetricCipherStream::reset() SymmetricCipherStream.cpp:69
Kdbx4Writer::writeDatabase(QIODevice *, Database *) Kdbx4Writer.cpp:177
KeePass2Writer::writeDatabase(QIODevice *, Database *) KeePass2Writer.cpp:140
Database::writeDatabase(QIODevice *, QString *) Database.cpp:419
Database::performSave(const QString &, Database::SaveAction, const QString &, QString *) Database.cpp:329
$_6::operator()() const Database.cpp:292
droidmonkey commented 1 month ago

If that was an issue it should come up in our CI tests which all run ASAN