From 953620402380b88fd8b8f8ec9a9ac116ef71c55b Mon Sep 17 00:00:00 2001 From: "Myoungwoon Roy, Kim" Date: Wed, 30 Jan 2019 09:38:11 +0900 Subject: [PATCH] efl_ui_list_view: Handling failed memory allocation Summary: Add a logic for handling failed memory allocation to prevent null pointer exception Test Plan: Run unit test cases Reviewers: eagleeye, Jaehyun_Cho, Hermet, zmike, SanghyeonLee Reviewed By: SanghyeonLee Subscribers: SanghyeonLee, cedric, #committers, #reviewers Tags: #efl Differential Revision: https://phab.enlightenment.org/D7829 --- src/lib/elementary/efl_ui_list_view_precise_layouter.c | 1 + src/lib/elementary/efl_ui_list_view_seg_array.c | 3 +++ 2 files changed, 4 insertions(+) diff --git a/src/lib/elementary/efl_ui_list_view_precise_layouter.c b/src/lib/elementary/efl_ui_list_view_precise_layouter.c index 5ed34573f4..488d4deeec 100644 --- a/src/lib/elementary/efl_ui_list_view_precise_layouter.c +++ b/src/lib/elementary/efl_ui_list_view_precise_layouter.c @@ -567,6 +567,7 @@ _efl_ui_list_view_precise_layouter_efl_ui_list_view_relayout_content_created(Eo } cb_data = calloc(1, sizeof(Efl_Ui_List_View_Precise_Layouter_Callback_Data)); + if (!cb_data) return; cb_data->pd = pd; cb_data->item = item; evas_object_event_callback_add(item->layout, EVAS_CALLBACK_CHANGED_SIZE_HINTS, _on_item_size_hint_change, cb_data); diff --git a/src/lib/elementary/efl_ui_list_view_seg_array.c b/src/lib/elementary/efl_ui_list_view_seg_array.c index 8bf39e91dd..89dba53011 100644 --- a/src/lib/elementary/efl_ui_list_view_seg_array.c +++ b/src/lib/elementary/efl_ui_list_view_seg_array.c @@ -77,6 +77,7 @@ _alloc_node(Efl_Ui_List_View_Seg_Array* pd, int first) { Efl_Ui_List_View_Seg_Array_Node* node; node = calloc(1, sizeof(Efl_Ui_List_View_Seg_Array_Node) + pd->step_size*sizeof(Efl_Ui_List_View_Layout_Item*)); + if (!node) return NULL; node->first = first; node->max = pd->step_size; pd->root = (void*)eina_rbtree_inline_insert(EINA_RBTREE_GET(pd->root), EINA_RBTREE_GET(node), @@ -89,6 +90,7 @@ static Efl_Ui_List_View_Layout_Item* _create_item_partial(Efl_Model* model) { Efl_Ui_List_View_Layout_Item* item = calloc(1, sizeof(Efl_Ui_List_View_Layout_Item)); + if (!item) return NULL; item->children = efl_ref(model); return item; } @@ -334,6 +336,7 @@ Efl_Ui_List_View_Seg_Array * efl_ui_list_view_seg_array_setup(int size) { Efl_Ui_List_View_Seg_Array *pd = calloc(1, sizeof(Efl_Ui_List_View_Seg_Array)); + if (!pd) return NULL; pd->step_size = size; return pd;