From 974fe36620748c96801d5806842ef6fa58ca947f Mon Sep 17 00:00:00 2001 From: Alaric Senat <dev.asenat@posteo.net> Date: Thu, 2 Jun 2022 15:43:32 +0200 Subject: [PATCH] MediaLibrary: Set logger before acquiring file lock File locking will attempt to log on failure (ie: the medialib is already locked). As `s_logger` null checks were removed [1], logging before constructing `MediaLibrary` was dereferencing nullptr. [1] fc002ae17f9b6544d784f609f3b6872544e5d40c --- src/MediaLibrary.cpp | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/MediaLibrary.cpp b/src/MediaLibrary.cpp index cdc83374..f0beef6e 100644 --- a/src/MediaLibrary.cpp +++ b/src/MediaLibrary.cpp @@ -291,8 +291,13 @@ std::unique_ptr<MediaLibrary> MediaLibrary::create( const std::string& dbPath, const std::string& mlFolderPath, bool lockFile, const SetupConfig* cfg ) { - std::unique_ptr<LockFile> lock; + if ( cfg != nullptr && cfg->logger != nullptr ) + Log::SetLogger( cfg->logger ); + else + Log::SetLogger( std::make_shared<IostreamLogger>() ); + Log::setLogLevel( cfg != nullptr ? cfg->logLevel : LogLevel::Error ); + std::unique_ptr<LockFile> lock; if ( lockFile ) { lock = LockFile::lock( mlFolderPath ); @@ -321,11 +326,6 @@ MediaLibrary::MediaLibrary( const std::string& dbPath, , m_parser( this, &m_fsHolder ) , m_discovererWorker( this, &m_fsHolder ) { - if ( cfg != nullptr && cfg->logger != nullptr ) - Log::SetLogger( cfg->logger ); - else - Log::SetLogger( std::make_shared<IostreamLogger>() ); - Log::setLogLevel( cfg != nullptr ? cfg->logLevel : LogLevel::Error ); if ( cfg != nullptr ) { for ( const auto& p : cfg->deviceListers ) -- GitLab