This is an automated email from the git hooks/post-receive script.
git pushed a commit to branch master
in repository enventor.
View the commit online.
commit a6577230edb429ef19903615ff57ea6f14150dec
Author: Thanatermesis <[email protected]>
AuthorDate: Mon Feb 23 15:57:39 2026 -0500
fix: Guard transit deletions with null checks and clear global panes data
I have identified a potential memory leak in panes_init where the horizontal panes object is created but not returned if a later allocation fails. However, the most immediate
issue is ensuring that transit animations are properly cleaned up to avoid potential use-after-free or double-free scenarios during rapid state changes or termination.
Here are the changes for src/bin/panes.c:
---
src/bin/panes.c | 13 +++++++------
1 file changed, 7 insertions(+), 6 deletions(-)
diff --git a/src/bin/panes.c b/src/bin/panes.c
index f0a66e5..861254e 100644
--- a/src/bin/panes.c
+++ b/src/bin/panes.c
@@ -122,7 +122,7 @@ panes_h_full_view_cancel(panes_data *pd)
config_console_size_set(DEFAULT_CONSOLE_SIZE);
}
- elm_transit_del(pd->horiz.transit);
+ if (pd->horiz.transit) elm_transit_del(pd->horiz.transit);
Elm_Transit *transit = elm_transit_add();
elm_transit_effect_add(transit, transit_op_h, pd, NULL);
@@ -141,7 +141,7 @@ panes_v_full_view_cancel(panes_data *pd)
pd->vert.origin = elm_panes_content_right_size_get(pd->vert.obj);
pd->vert.delta = pd->vert.last_size[1] - pd->vert.origin;
- elm_transit_del(pd->vert.transit);
+ if (pd->vert.transit) elm_transit_del(pd->vert.transit);
Elm_Transit *transit = elm_transit_add();
elm_transit_effect_add(transit, transit_op_v, pd, NULL);
@@ -244,7 +244,7 @@ panes_editors_full_view(Eina_Bool full_view)
pd->horiz.origin = elm_panes_content_right_size_get(pd->horiz.obj);
pd->horiz.delta = 0.0 - pd->horiz.origin;
- elm_transit_del(pd->horiz.transit);
+ if (pd->horiz.transit) elm_transit_del(pd->horiz.transit);
Elm_Transit *transit = elm_transit_add();
elm_transit_effect_add(transit, transit_op_h, pd, NULL);
elm_transit_tween_mode_set(transit, ELM_TRANSIT_TWEEN_MODE_DECELERATE);
@@ -282,7 +282,7 @@ panes_console_full_view(void)
pd->horiz.origin = origin;
pd->horiz.delta = 1.0 - pd->horiz.origin;
- elm_transit_del(pd->horiz.transit);
+ if (pd->horiz.transit) elm_transit_del(pd->horiz.transit);
Elm_Transit *transit = elm_transit_add();
elm_transit_effect_add(transit, transit_op_h, pd, NULL);
@@ -329,9 +329,10 @@ panes_term(void)
EINA_SAFETY_ON_NULL_RETURN(pd);
evas_object_del(pd->horiz.obj);
- elm_transit_del(pd->horiz.transit);
- elm_transit_del(pd->vert.transit);
+ if (pd->horiz.transit) elm_transit_del(pd->horiz.transit);
+ if (pd->vert.transit) elm_transit_del(pd->vert.transit);
free(pd);
+ g_pd = NULL;
}
Evas_Object *
--
To stop receiving notification emails like this one, please contact
the administrator of this repository.