From 9d143f53708c28c91fe9a308306164b1c961cf19 Mon Sep 17 00:00:00 2001 From: Junghoon Park Date: Tue, 26 Sep 2017 17:52:55 +0900 Subject: [PATCH] Fix static analysis issue - Fix 'resource leak' - Fix 'Uninitialized scalar variable' - Fix 'Dereference null return value' Change-Id: I70231bcc28287b8da2a999f8e0931670af6e464d Signed-off-by: Junghoon Park --- src/base/widget_base.c | 1 + src/efl_base/widget_app.c | 15 +++++++++++++++ 2 files changed, 16 insertions(+) diff --git a/src/base/widget_base.c b/src/base/widget_base.c index e43635d..1843061 100644 --- a/src/base/widget_base.c +++ b/src/base/widget_base.c @@ -1600,6 +1600,7 @@ EXPORT_API widget_base_class widget_base_class_get_default(void) cls.ops.destroy = __class_on_destroy; cls.ops.pause = __class_on_pause; cls.ops.resume = __class_on_resume; + cls.id = NULL; return cls; } diff --git a/src/efl_base/widget_app.c b/src/efl_base/widget_app.c index 640dca2..6197b31 100644 --- a/src/efl_base/widget_app.c +++ b/src/efl_base/widget_app.c @@ -51,6 +51,8 @@ struct app_class_cb_info { void *user_data; }; +static GList *__class_data_list; + static int __class_resize(widget_base_instance_h instance_h, int w, int h, void *class_data) { @@ -62,6 +64,13 @@ static int __class_resize(widget_base_instance_h instance_h, int w, int h, widget_base_class_on_resize(instance_h, w, h); data = (struct instance_data *) widget_base_context_get_user_data(instance_h); + + if (!data) { + _E("widget_base_context_get_user_data() returns null"); + + return -1; + } + if (data->win) evas_object_resize(data->win, w, h); else @@ -253,6 +262,11 @@ EXPORT_API int widget_app_main(int argc, char **argv, cb_info.user_data = user_data; r = widget_base_init(ops, argc, argv, &cb_info); + if (__class_data_list) { + g_list_free_full(__class_data_list, free); + __class_data_list = NULL; + } + widget_base_fini(); return r; @@ -428,6 +442,7 @@ EXPORT_API widget_class_h widget_app_class_add(widget_class_h widget_class, return NULL; } + __class_data_list = g_list_append(__class_data_list, callback_data); set_last_result(WIDGET_ERROR_NONE); return wc; -- 2.7.4