From 9df155edaa7e6556adfcaa5a5df89dc86121f340 Mon Sep 17 00:00:00 2001 From: ChunEon Park Date: Thu, 25 Apr 2013 19:26:09 +0900 Subject: [PATCH] elementary/naviframe - fix null pointer access on naviframe item deletion. --- legacy/elementary/ChangeLog | 12 ++++++++---- legacy/elementary/NEWS | 1 + legacy/elementary/src/lib/elc_naviframe.c | 7 +++---- 3 files changed, 12 insertions(+), 8 deletions(-) diff --git a/legacy/elementary/ChangeLog b/legacy/elementary/ChangeLog index c3a8660162..e31e2ff9eb 100644 --- a/legacy/elementary/ChangeLog +++ b/legacy/elementary/ChangeLog @@ -1261,7 +1261,7 @@ * When entry is disabled, scrolling is also disabled. -2013-04-17 ChunEon Park +2013-04-17 ChunEon Park (Hermet) * Don't try to pop the naviframe item multiple times. @@ -1273,7 +1273,7 @@ * Make access object unfocusable when Aaccessibility is disabled. -2013-04-23 ChunEon Park +2013-04-23 ChunEon Park (Hermet) * Added elm_object_domain_part_text_translatable_set(), elm_object_item_domain_part_text_translatable_set(). @@ -1284,13 +1284,17 @@ cursor is changed. It is a scroller in scroller. In this case, it moved twice. -2013-04-23 ChunEon Park +2013-04-23 ChunEon Park (Hermet) * Support language change for widget items (Ctxpopup, Hoversel, Naviframe, Diskselector, List, Menu, Segment_Control, Toolbar, Popup, MultibuttonEntry) -2013-04-23 ChunEon Park +2013-04-23 ChunEon Park (Hermet) * Support language,changed callback (Fileselector_Button, Fileselector Entry, Spinner + +2013-04-25 ChunEon Park (Hermet) + + * Fix null pointer access on naviframe item deletion. diff --git a/legacy/elementary/NEWS b/legacy/elementary/NEWS index fdded23138..39f360e6b9 100644 --- a/legacy/elementary/NEWS +++ b/legacy/elementary/NEWS @@ -215,6 +215,7 @@ Improvements: * When entry is disabled, scrolling is also disabled. * Make access object unfocusable when Aaccessibility is disabled. * Fix the scrolled entry in scroller is located wrong position when the cursor is changed. + * Fix null pointer access on naviframe item deletion. Removals: diff --git a/legacy/elementary/src/lib/elc_naviframe.c b/legacy/elementary/src/lib/elc_naviframe.c index 543bde4648..59ac634851 100644 --- a/legacy/elementary/src/lib/elc_naviframe.c +++ b/legacy/elementary/src/lib/elc_naviframe.c @@ -451,15 +451,14 @@ _item_del_pre_hook(Elm_Object_Item *it) elm_widget_tree_unfocusable_set(VIEW(nit), EINA_TRUE); } - if (sd->stack->last->prev) - prev_it = EINA_INLIST_CONTAINER_GET - (sd->stack->last->prev, Elm_Naviframe_Item); - sd->stack = eina_inlist_remove(sd->stack, EINA_INLIST_GET(nit)); if (!sd->stack) elm_widget_resize_object_set(WIDGET(it), sd->dummy_edje); if (top && !sd->on_deletion) /* must raise another one */ { + if (sd->stack && sd->stack->last) + prev_it = EINA_INLIST_CONTAINER_GET(sd->stack->last, + Elm_Naviframe_Item); if (!prev_it) goto end; if (sd->freeze_events)