Fix potential memory leak in agl-compositor 27/27227/3
authorduerpei <duep.fnst@fujitsu.com>
Tue, 15 Mar 2022 02:26:03 +0000 (10:26 +0800)
committerduerpei <duep.fnst@fujitsu.com>
Tue, 15 Mar 2022 02:26:03 +0000 (10:26 +0800)
wet_main->parse_options-> .... ->strdup ->malloc
    "config_file" memory is not released
    "log"memory is not released

When agl-compositor startup parameters contain socket and modules,
the memory of socket_name and option_modules also needs to be released.
So these two pointers are also released.

Bug-AGL: SPEC-4270

Signed-off-by: duerpei <duep.fnst@fujitsu.com>
Change-Id: I0d74b92187a0779610f32e75b33ab4fca10329a5

src/compositor.c

index fd5f5a6..d335c60 100644 (file)
@@ -1645,13 +1645,14 @@ int wet_main(int argc, char *argv[])
 
        if (version) {
                printf(PACKAGE_STRING "\n");
-               return EXIT_SUCCESS;
+               ret = EXIT_SUCCESS;
+               goto exit_signals;
        }
 
        log_ctx = weston_log_ctx_compositor_create();
        if (!log_ctx) {
                fprintf(stderr, "Failed to initialize weston debug framework.\n");
-               return ret;
+               goto exit_signals;
        }
 
         log_scope = weston_compositor_add_log_scope(log_ctx, "log",
@@ -1796,5 +1797,10 @@ error_signals:
        if (ivi.config)
                weston_config_destroy(ivi.config);
 
+exit_signals:
+       free(log);
+       free(config_file);
+       free(socket_name);
+       free(option_modules);
        return ret;
 }