From 41ccef1060c73d30cb4d28f0abfab04d9584925a Mon Sep 17 00:00:00 2001 From: Felix Kauselmann Date: Thu, 2 Jul 2020 20:28:53 +0200 Subject: [PATCH] Fix possible memleaks occuring when passing nonexistent dirs to console library creator. (#132) --- .../console_ui_library_creator.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/YACReaderLibraryServer/console_ui_library_creator.cpp b/YACReaderLibraryServer/console_ui_library_creator.cpp index 642bf753..df8ddc1c 100644 --- a/YACReaderLibraryServer/console_ui_library_creator.cpp +++ b/YACReaderLibraryServer/console_ui_library_creator.cpp @@ -12,21 +12,21 @@ ConsoleUILibraryCreator::ConsoleUILibraryCreator(QObject *parent) void ConsoleUILibraryCreator::createLibrary(const QString &name, const QString &path) { - QEventLoop eventLoop; - LibraryCreator *libraryCreator = new LibraryCreator(); - QDir pathDir(path); if (!pathDir.exists()) { std::cout << "Directory not found." << std::endl; return; } + QEventLoop eventLoop; + LibraryCreator *libraryCreator = new LibraryCreator(); QString cleanPath = QDir::cleanPath(pathDir.absolutePath()); YACReaderLibraries yacreaderLibraries; yacreaderLibraries.load(); if (yacreaderLibraries.contains(name)) { std::cout << "A Library named \"" << name.toUtf8().constData() << "\" already exists in database." << std::endl; + delete libraryCreator; return; } @@ -49,14 +49,14 @@ void ConsoleUILibraryCreator::createLibrary(const QString &name, const QString & void ConsoleUILibraryCreator::updateLibrary(const QString &path) { - QEventLoop eventLoop; - LibraryCreator *libraryCreator = new LibraryCreator(); - QDir pathDir(path); if (!pathDir.exists()) { std::cout << "Directory not found." << std::endl; return; } + + QEventLoop eventLoop; + LibraryCreator *libraryCreator = new LibraryCreator(); QString cleanPath = QDir::cleanPath(pathDir.absolutePath()); libraryCreator->updateLibrary(cleanPath, QDir::cleanPath(pathDir.absolutePath() + "/.yacreaderlibrary"));