From 988b9cdcbc6db75aaaf7b5a5d89ad7defe848d7a Mon Sep 17 00:00:00 2001 From: Cedric BAIL Date: Fri, 3 Apr 2015 16:33:33 +0200 Subject: [PATCH] efl: make efl_gfx_shape_interpolate more resistant to bogus request. --- src/lib/efl/interfaces/efl_gfx_shape.c | 5 +++-- 1 file changed, 3 insertions(+), 2 deletions(-) diff --git a/src/lib/efl/interfaces/efl_gfx_shape.c b/src/lib/efl/interfaces/efl_gfx_shape.c index 986c4dcc2a..52beef1a05 100644 --- a/src/lib/efl/interfaces/efl_gfx_shape.c +++ b/src/lib/efl/interfaces/efl_gfx_shape.c @@ -249,17 +249,18 @@ _efl_gfx_shape_interpolate(Eo *obj, Efl_Gfx_Shape_Data *pd, from_pd = eo_data_scope_get(from, EFL_GFX_SHAPE_MIXIN); to_pd = eo_data_scope_get(to, EFL_GFX_SHAPE_MIXIN); if (!from_pd && !to_pd) return EINA_FALSE; + if (pd == from_pd || pd == to_pd) return EINA_FALSE; if (!_efl_gfx_shape_equal_commands_internal(from_pd, to_pd)) return EINA_FALSE; cmds = realloc(pd->commands, sizeof (Efl_Gfx_Path_Command) * from_pd->commands_count); - if (!cmds) return EINA_FALSE; + if (!cmds && from_pd->commands_count) return EINA_FALSE; pd->commands = cmds; pts = realloc(pd->points, sizeof (double) * from_pd->points_count); - if (!pts) return EINA_FALSE; + if (!pts && from_pd->points_count) return EINA_FALSE; pd->points = pts; memcpy(cmds, from_pd->commands,