diff --git a/modules/gui/skins2/os2/os2_factory.cpp b/modules/gui/skins2/os2/os2_factory.cpp index 8e42262b9f68c7680b2feca10742f235bf59ddf3..462f463f7413bf72b35cdd9072ff6f36099e20ca 100644 --- a/modules/gui/skins2/os2/os2_factory.cpp +++ b/modules/gui/skins2/os2/os2_factory.cpp @@ -218,16 +218,22 @@ bool OS2Factory::init() // Initialize the resource path char *datadir = config_GetUserDir( VLC_USERDATA_DIR ); - m_resourcePath.push_back( (std::string)datadir + "\\skins" ); - free( datadir ); + if (likely(datadir != nullptr)) + { + m_resourcePath.push_back( (std::string)datadir + "\\skins" ); + free( datadir ); + } datadir = config_GetSysPath(VLC_PKG_DATA_DIR, NULL); - m_resourcePath.push_back( (std::string)datadir + "\\skins" ); - m_resourcePath.push_back( (std::string)datadir + "\\skins2" ); - m_resourcePath.push_back( (std::string)datadir + "\\share\\skins" ); - m_resourcePath.push_back( (std::string)datadir + "\\share\\skins2" ); - m_resourcePath.push_back( (std::string)datadir + "\\vlc\\skins" ); - m_resourcePath.push_back( (std::string)datadir + "\\vlc\\skins2" ); - free( datadir ); + if (likely(datadir != nullptr)) + { + m_resourcePath.push_back( (std::string)datadir + "\\skins" ); + m_resourcePath.push_back( (std::string)datadir + "\\skins2" ); + m_resourcePath.push_back( (std::string)datadir + "\\share\\skins" ); + m_resourcePath.push_back( (std::string)datadir + "\\share\\skins2" ); + m_resourcePath.push_back( (std::string)datadir + "\\vlc\\skins" ); + m_resourcePath.push_back( (std::string)datadir + "\\vlc\\skins2" ); + free( datadir ); + } // All went well return true; diff --git a/modules/gui/skins2/win32/win32_factory.cpp b/modules/gui/skins2/win32/win32_factory.cpp index 8c0ca0631b53dd2f7e1d947d7b5a290130d12313..cf9d4657a6eb334997c36b8a6d6926ab0e523341 100644 --- a/modules/gui/skins2/win32/win32_factory.cpp +++ b/modules/gui/skins2/win32/win32_factory.cpp @@ -232,14 +232,20 @@ bool Win32Factory::init() // Initialize the resource path char *datadir = config_GetUserDir( VLC_USERDATA_DIR ); - m_resourcePath.push_back( (std::string)datadir + "\\skins" ); - free( datadir ); + if (likely(datadir != nullptr)) + { + m_resourcePath.push_back( (std::string)datadir + "\\skins" ); + free( datadir ); + } datadir = config_GetSysPath(VLC_PKG_DATA_DIR, NULL); - m_resourcePath.push_back( (std::string)datadir + "\\skins" ); - m_resourcePath.push_back( (std::string)datadir + "\\skins2" ); - m_resourcePath.push_back( (std::string)datadir + "\\share\\skins" ); - m_resourcePath.push_back( (std::string)datadir + "\\share\\skins2" ); - free( datadir ); + if (likely(datadir != nullptr)) + { + m_resourcePath.push_back( (std::string)datadir + "\\skins" ); + m_resourcePath.push_back( (std::string)datadir + "\\skins2" ); + m_resourcePath.push_back( (std::string)datadir + "\\share\\skins" ); + m_resourcePath.push_back( (std::string)datadir + "\\share\\skins2" ); + free( datadir ); + } // Enumerate all monitors available EnumDisplayMonitors( NULL, NULL, MonitorEnumProc, (LPARAM)&m_monitorList ); diff --git a/modules/gui/skins2/x11/x11_factory.cpp b/modules/gui/skins2/x11/x11_factory.cpp index f1e0a46f6bc0487be01d8c9f16bfa38debae86e6..6d0fc69464f27e1144665a1fdd5dbdb2c77c6a29 100644 --- a/modules/gui/skins2/x11/x11_factory.cpp +++ b/modules/gui/skins2/x11/x11_factory.cpp @@ -85,12 +85,18 @@ bool X11Factory::init() // Initialize the resource path char *datadir = config_GetUserDir( VLC_USERDATA_DIR ); - m_resourcePath.push_back( (std::string)datadir + "/skins2" ); - free( datadir ); + if (likely(datadir != nullptr)) + { + m_resourcePath.push_back( (std::string)datadir + "/skins2" ); + free( datadir ); + } m_resourcePath.push_back( (std::string)"share/skins2" ); datadir = config_GetSysPath(VLC_PKG_DATA_DIR, "skins2"); - m_resourcePath.push_back( (std::string)datadir ); - free( datadir ); + if (likely(datadir != nullptr)) + { + m_resourcePath.push_back( (std::string)datadir ); + free( datadir ); + } // Determine the monitor geometry getDefaultGeometry( &m_screenWidth, &m_screenHeight );