From 8ba6df2a3ee67a07d1288a71d9d03cbcae3717ed Mon Sep 17 00:00:00 2001 From: Jehun Lim Date: Mon, 10 Aug 2015 19:44:04 +0900 Subject: [PATCH] fix memory leak Change-Id: I39045a6487933ff2a817ae47bbddcbe19f329aab Signed-off-by: Jehun Lim --- src/layout/gallery.c | 4 +++- src/layout/movie.c | 8 ++++++-- src/layout/music.c | 8 ++++++-- 3 files changed, 15 insertions(+), 5 deletions(-) diff --git a/src/layout/gallery.c b/src/layout/gallery.c index c6a4086..30f6e77 100644 --- a/src/layout/gallery.c +++ b/src/layout/gallery.c @@ -209,8 +209,10 @@ static struct listmgr_data *_create_listmgr_data(struct _priv *priv) data->box_padding = BOX_PADDING; gops = calloc(1, sizeof(*gops)); - if (!gops) + if (!gops) { + free(data); goto err; + } gops->gclass = &_gclass; gops->selected_cb = _grid_selected_cb; diff --git a/src/layout/movie.c b/src/layout/movie.c index b863c90..4a4aaa9 100644 --- a/src/layout/movie.c +++ b/src/layout/movie.c @@ -397,7 +397,7 @@ static struct listmgr_data *_create_listmgr_data(struct _priv *priv) pops = calloc(1, sizeof(*pops)); if (!pops) - goto err; + goto err2; pops->draw = _draw_recent; pops->update = _update_recent; @@ -406,7 +406,7 @@ static struct listmgr_data *_create_listmgr_data(struct _priv *priv) gops = calloc(1, sizeof(*gops)); if (!gops) - goto err; + goto err3; gops->gclass = &_gclass; gops->selected_cb = _grid_selected_cb; @@ -417,6 +417,10 @@ static struct listmgr_data *_create_listmgr_data(struct _priv *priv) return data; +err3: + free(pops); +err2: + free(data); err: _ERR("failed to allocate memory"); return NULL; diff --git a/src/layout/music.c b/src/layout/music.c index 30ecc98..5af1198 100644 --- a/src/layout/music.c +++ b/src/layout/music.c @@ -330,7 +330,7 @@ static struct listmgr_data *_create_listmgr_data(struct _priv *priv) pops = calloc(1, sizeof(*pops)); if (!pops) - goto err; + goto err2; pops->draw = _draw_playing_info; pops->update = _update_playing_info; @@ -339,7 +339,7 @@ static struct listmgr_data *_create_listmgr_data(struct _priv *priv) gops = calloc(1, sizeof(*gops)); if (!gops) - goto err; + goto err3; gops->gclass = &_gclass; gops->selected_cb = _grid_selected_cb; @@ -350,6 +350,10 @@ static struct listmgr_data *_create_listmgr_data(struct _priv *priv) return data; +err3: + free(pops); +err2: + free(data); err: _ERR("failed to allocate memory"); return NULL; -- 2.7.4