mirror of
https://github.com/keepassxreboot/keepassxc.git
synced 2025-08-01 11:06:17 -04:00
Add ASAN to keepassxc-cli
This commit is contained in:
parent
a661c17eca
commit
558c75a452
1 changed files with 26 additions and 20 deletions
|
@ -31,6 +31,10 @@
|
||||||
#include "core/Tools.h"
|
#include "core/Tools.h"
|
||||||
#include "crypto/Crypto.h"
|
#include "crypto/Crypto.h"
|
||||||
|
|
||||||
|
#if defined(WITH_ASAN) && defined(WITH_LSAN)
|
||||||
|
#include <sanitizer/lsan_interface.h>
|
||||||
|
#endif
|
||||||
|
|
||||||
int main(int argc, char **argv)
|
int main(int argc, char **argv)
|
||||||
{
|
{
|
||||||
#ifdef QT_NO_DEBUG
|
#ifdef QT_NO_DEBUG
|
||||||
|
@ -76,33 +80,35 @@ int main(int argc, char **argv)
|
||||||
++argv;
|
++argv;
|
||||||
--argc;
|
--argc;
|
||||||
|
|
||||||
|
int exitCode = EXIT_FAILURE;
|
||||||
|
|
||||||
if (commandName == "entropy-meter") {
|
if (commandName == "entropy-meter") {
|
||||||
argv[0] = const_cast<char*>("keepassxc-cli entropy-meter");
|
argv[0] = const_cast<char*>("keepassxc-cli entropy-meter");
|
||||||
return EntropyMeter::execute(argc, argv);
|
exitCode = EntropyMeter::execute(argc, argv);
|
||||||
}
|
} else if (commandName == "extract") {
|
||||||
|
|
||||||
if (commandName == "extract") {
|
|
||||||
argv[0] = const_cast<char*>("keepassxc-cli extract");
|
argv[0] = const_cast<char*>("keepassxc-cli extract");
|
||||||
return Extract::execute(argc, argv);
|
exitCode = Extract::execute(argc, argv);
|
||||||
}
|
} else if (commandName == "list") {
|
||||||
|
|
||||||
if (commandName == "list") {
|
|
||||||
argv[0] = const_cast<char*>("keepassxc-cli list");
|
argv[0] = const_cast<char*>("keepassxc-cli list");
|
||||||
return List::execute(argc, argv);
|
exitCode = List::execute(argc, argv);
|
||||||
}
|
} else if (commandName == "merge") {
|
||||||
|
|
||||||
if (commandName == "merge") {
|
|
||||||
argv[0] = const_cast<char*>("keepassxc-cli merge");
|
argv[0] = const_cast<char*>("keepassxc-cli merge");
|
||||||
return Merge::execute(argc, argv);
|
exitCode = Merge::execute(argc, argv);
|
||||||
}
|
} else if (commandName == "show") {
|
||||||
|
|
||||||
if (commandName == "show") {
|
|
||||||
argv[0] = const_cast<char*>("keepassxc-cli show");
|
argv[0] = const_cast<char*>("keepassxc-cli show");
|
||||||
return Show::execute(argc, argv);
|
exitCode = Show::execute(argc, argv);
|
||||||
}
|
} else {
|
||||||
|
|
||||||
qCritical("Invalid command %s.", qPrintable(commandName));
|
qCritical("Invalid command %s.", qPrintable(commandName));
|
||||||
parser.showHelp();
|
parser.showHelp();
|
||||||
return EXIT_FAILURE;
|
exitCode = EXIT_FAILURE;
|
||||||
|
}
|
||||||
|
|
||||||
|
#if defined(WITH_ASAN) && defined(WITH_LSAN)
|
||||||
|
// do leak check here to prevent massive tail of end-of-process leak errors from third-party libraries
|
||||||
|
__lsan_do_leak_check();
|
||||||
|
__lsan_disable();
|
||||||
|
#endif
|
||||||
|
|
||||||
|
return exitCode;
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue