mirror of
https://github.com/chris2511/xca.git
synced 2026-09-12 19:51:05 +05:00
Close #442: asan checks failed
Enable ASAN with -DADDRESS_SANITIZER=ON Fix all findings inside XCA.
This commit is contained in:
parent
d50381d9cb
commit
c1bee8b38d
@ -17,10 +17,7 @@ include(cmake/git_version.cmake)
|
||||
|
||||
##### Build specifications
|
||||
|
||||
if(NOT CMAKE_BUILD_TYPE)
|
||||
set(CMAKE_BUILD_TYPE Release)
|
||||
endif()
|
||||
|
||||
set(ADDRESS_SANITIZER OFF CACHE BOOL "Enable Address sanitizing")
|
||||
set(CMAKE_POSITION_INDEPENDENT_CODE ON)
|
||||
|
||||
set(CMAKE_CXX_STANDARD 17)
|
||||
@ -31,6 +28,12 @@ set(CMAKE_AUTORCC ON)
|
||||
set(CMAKE_AUTOUIC_SEARCH_PATHS "${PROJECT_SOURCE_DIR}/ui")
|
||||
set(CMAKE_AUTOUIC ON)
|
||||
add_compile_definitions(OPENSSL_SUPPRESS_DEPRECATED QT_MESSAGELOGCONTEXT)
|
||||
|
||||
if (ADDRESS_SANITIZER)
|
||||
add_compile_options(-fsanitize=address -O1 -fno-omit-frame-pointer -g)
|
||||
set(ASAN_LIB -fsanitize=address)
|
||||
endif()
|
||||
|
||||
file(GLOB UI_FILES ${CMAKE_AUTOUIC_SEARCH_PATHS}/*.ui)
|
||||
|
||||
configure_file(local.h.in local.h)
|
||||
@ -75,10 +78,12 @@ endif()
|
||||
target_link_libraries(${CMAKE_PROJECT_NAME}
|
||||
OpenSSL::Crypto
|
||||
${QT}::Widgets ${QT}::Core ${QT}::Sql ${QT}::Help
|
||||
${ASAN_LIB}
|
||||
)
|
||||
target_link_libraries(xcadoc
|
||||
OpenSSL::Crypto
|
||||
${QT}::Widgets ${QT}::Core ${QT}::Sql ${QT}::Help
|
||||
${ASAN_LIB}
|
||||
)
|
||||
|
||||
if (APPLE)
|
||||
|
||||
@ -43,6 +43,7 @@ db_base::db_base(const char *classname)
|
||||
db_base::~db_base()
|
||||
{
|
||||
saveHeaderState();
|
||||
qDeleteAll(allHeaders);
|
||||
delete rootItem;
|
||||
delete treeItem;
|
||||
}
|
||||
@ -150,8 +151,8 @@ void db_base::reloadContainer(const QList<enum pki_type> &typelist)
|
||||
void db_base::updateHeaders()
|
||||
{
|
||||
QString s = allHeaders.toData();
|
||||
foreach(dbheader *h, allHeaders)
|
||||
delete h;
|
||||
|
||||
qDeleteAll(allHeaders);
|
||||
allHeaders = getHeaders();
|
||||
allHeaders.fromData(s);
|
||||
}
|
||||
|
||||
@ -24,6 +24,7 @@
|
||||
#include "pki_evp.h"
|
||||
#include "pki_base.h"
|
||||
#include "arguments.h"
|
||||
#include "pki_export.h"
|
||||
#include "db_x509.h"
|
||||
#if defined(Q_OS_WIN32)
|
||||
//For the segfault handler
|
||||
@ -564,6 +565,7 @@ int main(int argc, char *argv[])
|
||||
<< pki->getIntName();
|
||||
delete mainwin;
|
||||
delete gui;
|
||||
pki_export::free_elements();
|
||||
#if defined(Q_OS_WIN32)
|
||||
FreeConsole();
|
||||
#endif
|
||||
|
||||
@ -39,6 +39,11 @@ const pki_export *pki_export::by_id(int id)
|
||||
return NULL;
|
||||
}
|
||||
|
||||
void pki_export::free_elements()
|
||||
{
|
||||
qDeleteAll(elements);
|
||||
}
|
||||
|
||||
QList<pki_export*> pki_export::elements {
|
||||
new pki_export( 1, x509, "crt", "PEM", F_PEM | F_USUAL | F_SINGLE, tr("PEM Text format with headers")),
|
||||
new pki_export( 3, x509, "pem", "PEM", F_PEM | F_MULTI, tr("Concatenated list of all selected items in one PEM text file")),
|
||||
|
||||
@ -67,6 +67,7 @@ class pki_export : public QObject {
|
||||
const QString &d, int f, const QString &h);
|
||||
static QList<const pki_export*> select(enum pki_type, int);
|
||||
static const pki_export *by_id(int id);
|
||||
static void free_elements();
|
||||
bool match_all(int match_flags) const;
|
||||
|
||||
private:
|
||||
|
||||
@ -30,7 +30,7 @@
|
||||
#include <QFileDialog>
|
||||
#include <QActionGroup>
|
||||
|
||||
static QAction *languageMenuEntry(const QStringList &sl)
|
||||
QAction *MainWindow::languageMenuEntry(const QStringList &sl)
|
||||
{
|
||||
QString lang, tooltip;
|
||||
QLocale locale;
|
||||
@ -48,7 +48,7 @@ static QAction *languageMenuEntry(const QStringList &sl)
|
||||
if (sl.length() > 2)
|
||||
tooltip += " - " + sl[2];
|
||||
|
||||
QAction *a = new QAction(lang, NULL);
|
||||
QAction *a = new QAction(lang, this);
|
||||
a->setToolTip(tooltip);
|
||||
a->setData(QVariant(locale));
|
||||
a->setDisabled(!XcaApplication::languageAvailable(locale));
|
||||
|
||||
@ -75,6 +75,7 @@ class MainWindow: public QMainWindow, public Ui::MainWindow
|
||||
QList<XcaTreeView *> views;
|
||||
dbhistory history;
|
||||
void exportIndex(const QString &fname, bool hierarchy) const;
|
||||
QAction *languageMenuEntry(const QStringList &sl);
|
||||
|
||||
protected:
|
||||
void init_images();
|
||||
|
||||
@ -35,12 +35,9 @@ static QString defaultlang()
|
||||
}
|
||||
|
||||
XcaApplication::XcaApplication(int &argc, char *argv[])
|
||||
:QApplication(argc, argv)
|
||||
:QApplication(argc, argv), mainw(nullptr), qtTr(nullptr), xcaTr(nullptr)
|
||||
{
|
||||
QLocale lang;
|
||||
qtTr = NULL;
|
||||
xcaTr = NULL;
|
||||
mainw = NULL;
|
||||
|
||||
QFile file(defaultlang());
|
||||
|
||||
@ -205,5 +202,6 @@ bool XcaApplication::notify(QObject* receiver, QEvent* event)
|
||||
|
||||
XcaApplication::~XcaApplication()
|
||||
{
|
||||
delete xcaTr;
|
||||
delete qtTr;
|
||||
}
|
||||
|
||||
|
||||
Loading…
Reference in New Issue
Block a user