Fix memleaks found with AddressSanitizer/LeakSanitizer

Found with:
ASAN_OPTIONS="detect_odr_violation=1,strip_path_prefix=$(pwd)/" build/sdrangel

Fixes:
Direct leak of 72 byte(s) in 1 object(s) allocated from:
    #0 0x7f7b94ef46c8 in operator new(unsigned long) ../../../../src/libsanitizer/asan/asan_new_delete.cpp:95
    #1 0x7f7b929ff74c in MainSettings::load() sdrbase/settings/mainsettings.cpp:153
    #2 0x7f7b947614f6 in MainWindow::loadSettings() sdrgui/mainwindow.cpp:1230
    #3 0x7f7b94759e11 in MainWindow::MainWindow(qtwebapp::LoggerWithFile*, MainParser const&, QWidget*) sdrgui/mainwindow.cpp:211
    #4 0x55b694e0a175 in runQtApplication app/main.cpp:196
    #5 0x55b694e07ab7 in main app/main.cpp:248
    #6 0x7f7b8f4456c9 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58

Indirect leak of 136 byte(s) in 1 object(s) allocated from:
    #0 0x7f7b94ef46c8 in operator new(unsigned long) ../../../../src/libsanitizer/asan/asan_new_delete.cpp:95
    #1 0x7f7b929e734d in QList<Preset>::node_construct(QList<Preset>::Node*, Preset const&) /usr/include/x86_64-linux-gnu/qt5/QtCore/qlist.h:465
    #2 0x7f7b929e734d in QList<Preset>::append(Preset const&) /usr/include/x86_64-linux-gnu/qt5/QtCore/qlist.h:625
    #3 0x7f7b929e734d in QList<Preset>::push_back(Preset const&) /usr/include/x86_64-linux-gnu/qt5/QtCore/qlist.h:377
    #4 0x7f7b929e734d in Configuration::deserialize(QByteArray const&) sdrbase/settings/configuration.cpp:112
    #5 0x7f7b929ff934 in MainSettings::load() sdrbase/settings/mainsettings.cpp:155
    #6 0x7f7b947614f6 in MainWindow::loadSettings() sdrgui/mainwindow.cpp:1230
    #7 0x7f7b94759e11 in MainWindow::MainWindow(qtwebapp::LoggerWithFile*, MainParser const&, QWidget*) sdrgui/mainwindow.cpp:211
    #8 0x55b694e0a175 in runQtApplication app/main.cpp:196
    #9 0x55b694e07ab7 in main app/main.cpp:248
    #10 0x7f7b8f4456c9 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58

Indirect leak of 32 byte(s) in 1 object(s) allocated from:
    #0 0x7f7b94ef46c8 in operator new(unsigned long) ../../../../src/libsanitizer/asan/asan_new_delete.cpp:95
    #1 0x7f7b929e9706 in QList<Preset::DeviceConfig>::node_construct(QList<Preset::DeviceConfig>::Node*, Preset::DeviceConfig const&) /usr/include/x86_64-linux-gnu/qt5/QtCore/qlist.h:465
    #2 0x7f7b929e9706 in QList<Preset::DeviceConfig>::append(Preset::DeviceConfig const&) /usr/include/x86_64-linux-gnu/qt5/QtCore/qlist.h:625
    #3 0x7f7b929f627c in Preset::deserialize(QByteArray const&) sdrbase/settings/preset.cpp:193
    #4 0x7f7b929e74ca in Configuration::deserialize(QByteArray const&) sdrbase/settings/configuration.cpp:113
    #5 0x7f7b929ff934 in MainSettings::load() sdrbase/settings/mainsettings.cpp:155
    #6 0x7f7b947614f6 in MainWindow::loadSettings() sdrgui/mainwindow.cpp:1230
    #7 0x7f7b94759e11 in MainWindow::MainWindow(qtwebapp::LoggerWithFile*, MainParser const&, QWidget*) sdrgui/mainwindow.cpp:211
    #8 0x55b694e0a175 in runQtApplication app/main.cpp:196
    #9 0x55b694e07ab7 in main app/main.cpp:248
    #10 0x7f7b8f4456c9 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58
Daniele Forsi 2024-04-06 18:50:08 +02:00
rodzic eecf1a822b
commit fe84aa11f6
1 zmienionych plików z 5 dodań i 0 usunięć

Wyświetl plik

@ -52,6 +52,11 @@ MainSettings::~MainSettings()
{
delete m_pluginPresets[i];
}
for (int i = 0; i < m_configurations.count(); ++i)
{
delete m_configurations[i];
}
}
QString MainSettings::getFileLocation() const