Fix memory leak 08/122508/1
authorseungha.son <seungha.son@samsung.com>
Mon, 3 Apr 2017 00:39:45 +0000 (09:39 +0900)
committerseungha.son <seungha.son@samsung.com>
Mon, 3 Apr 2017 00:40:21 +0000 (09:40 +0900)
Signed-off-by: seungha.son <seungha.son@samsung.com>
Change-Id: I81669725500ecf915feca52bbb303aa8cb55bea1

screen_connector_watcher_evas/src/screen_connector_watcher_evas.c

index 3f0eddc..0e4d177 100644 (file)
@@ -231,18 +231,22 @@ static void __watcher_update_cb(struct tizen_remote_surface *trs, uint32_t type,
 
 EXPORT_API screen_connector_watcher_evas_h screen_connector_watcher_evas_add(screen_connector_watcher_evas_ops *ops, void *data)
 {
-
        screen_connector_watcher_evas_h handle;
        screen_connector_watcher_evas_ops *evas_ops;
        screen_connector_watcher_ops *watcher_ops;
 
        watcher_ops = (screen_connector_watcher_ops *)calloc(1, sizeof(screen_connector_watcher_ops));
+       if (watcher_ops == NULL) {
+               LOGE("watcher_ops calloc fail");
+               return NULL;
+       }
        watcher_ops->added_cb = __watcher_added_cb;
        watcher_ops->updated_cb = __watcher_update_cb;
        watcher_ops->removed_cb = __watcher_removed_cb;
 
        evas_ops = (screen_connector_watcher_evas_ops *)calloc(1, sizeof(screen_connector_watcher_evas_ops));
        if (evas_ops == NULL) {
+               free(watcher_ops);
                LOGE("evas_ops calloc fail");
                return NULL;
        }
@@ -251,6 +255,7 @@ EXPORT_API screen_connector_watcher_evas_h screen_connector_watcher_evas_add(scr
        handle = (screen_connector_watcher_evas_h)calloc(1, sizeof(struct _screen_connector_watcher_evas_h));
        if (handle == NULL) {
                LOGE("handle calloc fail");
+               free(watcher_ops);
                free(evas_ops);
                return NULL;
        }
@@ -259,7 +264,6 @@ EXPORT_API screen_connector_watcher_evas_h screen_connector_watcher_evas_add(scr
        handle->watcher_h = screen_connector_watcher_add(watcher_ops, handle);
 
        return handle;
-
 }
 
 static void __destroy_watcher_evas_handle(screen_connector_watcher_evas_h watcher_evas_h)