fix memory leak 40/84940/1
authorBoram Park <boram1288.park@samsung.com>
Tue, 23 Aug 2016 02:32:06 +0000 (11:32 +0900)
committerBoram Park <boram1288.park@samsung.com>
Tue, 23 Aug 2016 02:32:06 +0000 (11:32 +0900)
Change-Id: I28934b0ddcbf1df4e6d079db9ca2dbc7ba79216c

src/tdm_helper.c

index 0d51670..e9da37f 100644 (file)
@@ -214,17 +214,20 @@ tdm_helper_dump_buffer_str(tbm_surface_h buffer, char *dir, char *str)
        const char *ext;
        char file[TDM_PATH_LEN];
        int ret, bw;
+       char *dump_dir = NULL;
 
        TDM_RETURN_IF_FAIL(buffer != NULL);
        TDM_RETURN_IF_FAIL(str != NULL);
 
-       if (!dir) {
-               dir = tdm_helper_dump_make_directory(TDM_DUMP_DIR, NULL, NULL);
-               TDM_RETURN_IF_FAIL(dir != NULL);
-       }
+       dump_dir = tdm_helper_dump_make_directory(TDM_DUMP_DIR, NULL, NULL);
+
+       if (!dir)
+               dir = dump_dir;
+
+       TDM_GOTO_IF_FAIL(dir != NULL, done);
 
        ret = tbm_surface_get_info(buffer, &info);
-       TDM_RETURN_IF_FAIL(ret == TBM_SURFACE_ERROR_NONE);
+       TDM_GOTO_IF_FAIL(ret == TBM_SURFACE_ERROR_NONE, done);
 
        if (info.format == TBM_FORMAT_ARGB8888 || info.format == TBM_FORMAT_XRGB8888) {
                ext = file_exts[0];
@@ -238,6 +241,9 @@ tdm_helper_dump_buffer_str(tbm_surface_h buffer, char *dir, char *str)
                         dir, FOURCC_STR(info.format), bw, info.height, str, ext);
 
        tdm_helper_dump_buffer(buffer, file);
+
+done:
+       free(dump_dir);
 }
 
 EXTERN void