Commit 4ed67d84 authored by Rémi Denis-Courmont's avatar Rémi Denis-Courmont

AllocatePluginFile: handle *alloc() errors properly

parent df9f30c2
......@@ -1171,12 +1171,9 @@ static int AllocatePluginFile( vlc_object_t * p_this, module_bank_t *p_bank,
p_module = AllocatePlugin( p_this, psz_file );
}
else
{
/* If junk dll, don't try to load it */
if( p_cache_entry->b_junk )
{
p_module = NULL;
}
return -1;
else
{
module_config_t *p_item = NULL, *p_end = NULL;
......@@ -1199,10 +1196,10 @@ static int AllocatePluginFile( vlc_object_t * p_this, module_bank_t *p_bank,
if( p_module == p_cache_entry->p_module )
p_cache_entry->b_used = true;
}
}
if( p_module )
{
if( p_module == NULL )
return -1;
/* Everything worked fine !
* The module is ready to be added to the list. */
p_module->b_builtin = false;
......@@ -1216,21 +1213,23 @@ static int AllocatePluginFile( vlc_object_t * p_this, module_bank_t *p_bank,
return 0;
/* Add entry to cache */
p_bank->pp_cache =
realloc( p_bank->pp_cache, (p_bank->i_cache + 1) * sizeof(void *) );
p_bank->pp_cache[p_bank->i_cache] = malloc( sizeof(module_cache_t) );
if( !p_bank->pp_cache[p_bank->i_cache] )
module_cache_t **pp_cache = p_bank->pp_cache;
pp_cache = realloc( pp_cache, (p_bank->i_cache + 1) * sizeof(void *) );
if( pp_cache == NULL )
return -1;
p_bank->pp_cache[p_bank->i_cache]->psz_file = strdup( psz_file );
p_bank->pp_cache[p_bank->i_cache]->i_time = i_file_time;
p_bank->pp_cache[p_bank->i_cache]->i_size = i_file_size;
p_bank->pp_cache[p_bank->i_cache]->b_junk = p_module ? 0 : 1;
p_bank->pp_cache[p_bank->i_cache]->b_used = true;
p_bank->pp_cache[p_bank->i_cache]->p_module = p_module;
pp_cache[p_bank->i_cache] = malloc( sizeof(module_cache_t) );
if( pp_cache[p_bank->i_cache] == NULL )
return -1;
pp_cache[p_bank->i_cache]->psz_file = strdup( psz_file );
pp_cache[p_bank->i_cache]->i_time = i_file_time;
pp_cache[p_bank->i_cache]->i_size = i_file_size;
pp_cache[p_bank->i_cache]->b_junk = p_module ? 0 : 1;
pp_cache[p_bank->i_cache]->b_used = true;
pp_cache[p_bank->i_cache]->p_module = p_module;
p_bank->pp_cache = pp_cache;
p_bank->i_cache++;
}
return p_module ? 0 : -1;
return 0;
}
/*****************************************************************************
......
Markdown is supported
0%
or
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment