diff --git a/modules/misc/medialibrary/medialibrary.cpp b/modules/misc/medialibrary/medialibrary.cpp
index 8144637c37b4bac1eba4728cc7ed9b2eb333411d..5231202476df92dfa2913f387c0d8bcbbc85a999 100644
--- a/modules/misc/medialibrary/medialibrary.cpp
+++ b/modules/misc/medialibrary/medialibrary.cpp
@@ -395,7 +395,10 @@ void MediaLibrary::onRescanStarted()
 
 MediaLibrary* MediaLibrary::create( vlc_medialibrary_module_t* vlc_ml )
 {
-    auto userDir = vlc::wrap_cptr( config_GetUserDir( VLC_USERDATA_DIR ) );
+    char *userdir = config_GetUserDir( VLC_USERDATA_DIR );
+    if (unlikely(userdir == nullptr))
+        return nullptr;
+    auto userDir = vlc::wrap_cptr( userdir );
     auto mlDir = std::string{ userDir.get() } + "/ml/";
     auto dbPath = mlDir + "ml.db";
     auto mlFolderPath = mlDir + "mlstorage/";