From 3fb678272d0fc175b38c0fcc7ab6bccaa5a1eb58 Mon Sep 17 00:00:00 2001 From: Daniele Forsi Date: Wed, 1 May 2024 15:22:29 +0200 Subject: [PATCH] Fix memleaks found with AddressSanitizer/LeakSanitizer Fixes: Direct leak of 16 byte(s) in 1 object(s) allocated from: #0 0x7efeb72f46b8 in operator new(unsigned long) ../../../../src/libsanitizer/asan/asan_new_delete.cpp:95 #1 0x7efe834b65a2 in WebServer::WebServer(unsigned short&, QObject*) sdrangel/plugins/feature/map/webserver.cpp:34 #2 0x7efe834bc342 in MapGUI::MapGUI(PluginAPI*, FeatureUISet*, Feature*, QWidget*) sdrangel/plugins/feature/map/mapgui.cpp:265 #3 0x7efe835372f4 in MapGUI::create(PluginAPI*, FeatureUISet*, Feature*) sdrangel/plugins/feature/map/mapgui.cpp:66 #4 0x7efe834b5471 in MapPlugin::createFeatureGUI(FeatureUISet*, Feature*) const sdrangel/plugins/feature/map/mapplugin.cpp:72 #5 0x7efeb6b416c2 in FeatureUISet::loadFeatureSetSettings(FeatureSetPreset const*, PluginAPI*, WebAPIAdapterInterface*, QList*, Workspace*) sdrangel/sdrgui/feature/featureuiset.cpp:185 #6 0x7efeb67e9b41 in MainWindow::loadConfiguration(Configuration const*, bool) sdrangel/sdrgui/mainwindow.cpp:1503 #7 0x7efeb6730e3e in MainWindow::MainWindow(qtwebapp::LoggerWithFile*, MainParser const&, QWidget*) sdrangel/sdrgui/mainwindow.cpp:257 #8 0x557281218bad in runQtApplication sdrangel/app/main.cpp:196 #9 0x5572812194a3 in main sdrangel/app/main.cpp:248 #10 0x7efeb10456c9 in __libc_start_call_main ../sysdeps/nptl/libc_start_call_main.h:58 and others --- plugins/feature/map/webserver.cpp | 6 ++++++ plugins/feature/map/webserver.h | 1 + 2 files changed, 7 insertions(+) diff --git a/plugins/feature/map/webserver.cpp b/plugins/feature/map/webserver.cpp index 3a2eb2924..cb9116cd3 100644 --- a/plugins/feature/map/webserver.cpp +++ b/plugins/feature/map/webserver.cpp @@ -15,6 +15,7 @@ // along with this program. If not, see . // /////////////////////////////////////////////////////////////////////////////////// +#include #include #include #include @@ -41,6 +42,11 @@ WebServer::WebServer(quint16 &port, QObject* parent) : m_mimeTypes.insert(".geojson", new MimeType("application/geo+json")); } +WebServer::~WebServer() +{ + qDeleteAll(m_mimeTypes); +} + void WebServer::incomingConnection(qintptr socket) { QTcpSocket* s = new QTcpSocket(this); diff --git a/plugins/feature/map/webserver.h b/plugins/feature/map/webserver.h index 7aa5070da..b24f92ba4 100644 --- a/plugins/feature/map/webserver.h +++ b/plugins/feature/map/webserver.h @@ -64,6 +64,7 @@ private: public: WebServer(quint16 &port, QObject* parent = 0); + ~WebServer(); void incomingConnection(qintptr socket) override; void addPathSubstitution(const QString &from, const QString &to); void addSubstitution(QString path, QString from, QString to);