[vlc-commits] modules: allocate absolute path during cache loading

Rémi Denis-Courmont git at videolan.org
Thu Oct 27 20:42:42 CEST 2016


vlc | branch: master | Rémi Denis-Courmont <remi at remlab.net> | Thu Oct 27 21:30:44 2016 +0300| [e817199bdd19e4dd24121b062b5244bd9d453a2d] | committer: Rémi Denis-Courmont

modules: allocate absolute path during cache loading

> http://git.videolan.org/gitweb.cgi/vlc.git/?a=commit;h=e817199bdd19e4dd24121b062b5244bd9d453a2d
---

 src/modules/bank.c  | 12 +-----------
 src/modules/cache.c |  8 ++++++++
 2 files changed, 9 insertions(+), 11 deletions(-)

diff --git a/src/modules/bank.c b/src/modules/bank.c
index 52b71a6..1065c1e 100644
--- a/src/modules/bank.c
+++ b/src/modules/bank.c
@@ -172,17 +172,7 @@ static int AllocatePluginFile (module_bank_t *bank, const char *abspath,
 
     /* Check our plugins cache first then load plugin if needed */
     if (bank->mode == CACHE_USE)
-    {
-        vlc_plugin_t *cache = vlc_cache_lookup(&bank->cache, relpath, st);
-        if (cache != NULL)
-        {
-            cache->abspath = strdup(abspath);
-            if (likely(cache->abspath != NULL))
-                plugin = cache;
-            else
-                vlc_plugin_destroy(cache);
-        }
-    }
+        plugin = vlc_cache_lookup(&bank->cache, relpath, st);
     if (plugin == NULL)
     {
         plugin = module_InitDynamic(bank->obj, abspath, true);
diff --git a/src/modules/cache.c b/src/modules/cache.c
index e727fa2..088a3b5 100644
--- a/src/modules/cache.c
+++ b/src/modules/cache.c
@@ -457,6 +457,14 @@ vlc_plugin_t *vlc_cache_load(vlc_object_t *p_this, const char *dir,
         if (plugin == NULL)
             goto error;
 
+        if (unlikely(asprintf(&plugin->abspath, "%s" DIR_SEP "%s", dir,
+                              plugin->path) == -1))
+        {
+            plugin->abspath = NULL;
+            vlc_plugin_destroy(plugin);
+            goto error;
+        }
+
         plugin->next = cache;
         cache = plugin;
     }



More information about the vlc-commits mailing list