Fix memleaks found with AddressSanitizer/LeakSanitizer

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

Fixes:
Direct leak of 176096 byte(s) in 5503 object(s) allocated from:
    #0 0x7f3a464f46c8 in operator new(unsigned long) ../../../../src/libsanitizer/asan/asan_new_delete.cpp:95
    #1 0x7f3a44009219 in Airline::Init::Init() sdrbase/util/airlines.cpp:5559
    #2 0x7f3a43dc797d in _sub_I_65535_0.0 (build/lib/libsdrbase.so+0x3c797d) (BuildId: fb568b705538a6e506ee23027626f4366b25aa50)
    #3 0x7f3a46c6ce3d in call_init elf/dl-init.c:74
    #4 0x7f3a46c6ce3d in call_init elf/dl-init.c:26

Indirect leak of 989274 byte(s) in 22012 object(s) allocated from:
    #0 0x7f3a464f3bd7 in malloc ../../../../src/libsanitizer/asan/asan_malloc_linux.cpp:69
    #1 0x7f3a410e63f1 in QArrayData::allocate(unsigned long, unsigned long, unsigned long, QFlags<QArrayData::AllocationOption>) (/lib/x86_64-linux-gnu/libQt5Core.so.5+0xe63f1) (BuildId: eaf989d675ab5f0e8e9033fa527c9ed018f70370)
Daniele Forsi 2024-04-07 13:10:20 +02:00
rodzic 945a2fc91c
commit a4f1cc9e28
2 zmienionych plików z 8 dodań i 0 usunięć

Wyświetl plik

@ -5560,3 +5560,10 @@ Airline::Init::Init()
s += 4;
}
}
Airline::Init::~Init()
{
foreach(const QString s, m_icaoHash.keys()) {
delete m_icaoHash[s];
}
}

Wyświetl plik

@ -55,6 +55,7 @@ private:
friend struct Init;
struct Init {
Init();
~Init();
static const char *m_airlines[];
};
static Init m_init;