Check NULL return

SVN revision: 50817
This commit is contained in:
Sebastian Dransfeld 2010-08-04 18:21:20 +00:00
parent 0a4617ae38
commit 7b5e166c85
1 changed files with 24 additions and 10 deletions

View File

@ -272,11 +272,11 @@ static Efreet_Desktop *efreet_menu_directory_get(Efreet_Menu_Internal *internal,
const char *path);
static void efreet_menu_process_filters(Efreet_Menu_Internal *internal,
unsigned int only_unallocated);
static Eina_List * efreet_menu_process_app_pool(Eina_List *pool,
Eina_List *applications,
Eina_Hash *matches,
Efreet_Menu_Filter *filter,
unsigned int only_unallocated);
static Eina_List *efreet_menu_process_app_pool(Eina_List *pool,
Eina_List *applications,
Eina_Hash *matches,
Efreet_Menu_Filter *filter,
unsigned int only_unallocated);
static int efreet_menu_filter_matches(Efreet_Menu_Filter_Op *op,
Efreet_Menu_Desktop *md);
static int efreet_menu_filter_or_matches(Efreet_Menu_Filter_Op *op,
@ -700,6 +700,7 @@ efreet_menu_parse(const char *path)
/* split appart the filename and the path */
internal = efreet_menu_internal_new();
if (!internal) return NULL;
/* Set default values */
internal->show_empty = 0;
@ -1122,6 +1123,7 @@ efreet_menu_handle_sub_menu(Efreet_Menu_Internal *parent, Efreet_Xml *xml)
efreet_menu_create_sub_menu_list(parent);
internal = efreet_menu_internal_new();
if (!internal) return 0;
internal->file.path = eina_stringshare_add(parent->file.path);
if (!efreet_menu_handle_menu(internal, xml))
{
@ -1682,6 +1684,7 @@ efreet_menu_merge(Efreet_Menu_Internal *parent, Efreet_Xml *xml, const char *pat
FREE(rp);
internal = efreet_menu_internal_new();
if (!internal) return 0;
efreet_menu_path_set(internal, path);
efreet_menu_handle_menu(internal, merge_xml);
efreet_menu_concatenate(parent, internal);
@ -1845,8 +1848,11 @@ efreet_menu_handle_legacy_dir(Efreet_Menu_Internal *parent, Efreet_Xml *xml)
legacy = efreet_menu_handle_legacy_dir_helper(NULL, parent, xml->text,
efreet_xml_attribute_get(xml, "prefix"));
efreet_menu_concatenate(parent, legacy);
efreet_menu_internal_free(legacy);
if (legacy)
{
efreet_menu_concatenate(parent, legacy);
efreet_menu_internal_free(legacy);
}
return 1;
@ -1880,13 +1886,15 @@ efreet_menu_handle_legacy_dir_helper(Efreet_Menu_Internal *root,
path = efreet_menu_path_get(parent, legacy_dir);
/* nothing to do if the legacy path doesn't exist */
if (!ecore_file_exists(path))
if (!path || !ecore_file_exists(path))
{
eina_stringshare_del(path);
return NULL;
}
legacy_internal = efreet_menu_internal_new();
if (!legacy_internal)
return NULL;
legacy_internal->name.internal = eina_stringshare_add(ecore_file_file_get(path));
/* add the legacy dir as an app dir */
@ -1916,6 +1924,11 @@ efreet_menu_handle_legacy_dir_helper(Efreet_Menu_Internal *root,
/* setup a filter for all the conforming .desktop files in the legacy
* dir */
filter = efreet_menu_filter_new();
if (!filter)
{
efreet_menu_internal_free(legacy_internal);
return NULL;
}
filter->type = EFREET_MENU_FILTER_INCLUDE;
filter->op->type = EFREET_MENU_FILTER_OP_OR;
@ -2378,6 +2391,7 @@ efreet_menu_handle_filter(Efreet_Menu_Internal *parent, Efreet_Xml *xml,
/* filters have a default or relationship */
filter = efreet_menu_filter_new();
if (!filter) return 0;
filter->type = type;
filter->op->type = EFREET_MENU_FILTER_OP_OR;
@ -2795,8 +2809,6 @@ efreet_menu_process_app_pool(Eina_List *pool, Eina_List *applications,
Efreet_Menu_Desktop *md;
Eina_List *l;
if (!pool) return NULL;
EINA_LIST_FOREACH(pool, l, md)
{
if (eina_hash_find(matches, md->id)) continue;
@ -3121,6 +3133,7 @@ efreet_menu_resolve_moves(Efreet_Menu_Internal *internal)
*path = '\0';
ancestor = efreet_menu_internal_new();
if (!ancestor) goto error;
ancestor->name.internal = eina_stringshare_add(tmp);
efreet_menu_create_sub_menu_list(parent);
@ -3143,6 +3156,7 @@ efreet_menu_resolve_moves(Efreet_Menu_Internal *internal)
efreet_menu_internal_free(origin);
}
}
error:
IF_FREE_LIST(internal->moves, efreet_menu_move_free);
}