heart-cpu: Free memory before exiting the function 38/315738/1
authorUnsung Lee <unsung.lee@samsung.com>
Wed, 4 Dec 2024 02:30:21 +0000 (11:30 +0900)
committerUnsung Lee <unsung.lee@samsung.com>
Wed, 4 Dec 2024 04:26:25 +0000 (13:26 +0900)
Free array and builder before exiting the function
when the function is returned by error.

Change-Id: Iec39449fe440dffa003f7b7e913010342bd76585
Signed-off-by: Unsung Lee <unsung.lee@samsung.com>
src/resource-monitor/heart-cpu.c

index 8f06914a0e370b44d09e6c12941a951a85877c0e..d65ff734cac1b1cd38672dad42c99719625b19fd 100644 (file)
@@ -458,12 +458,14 @@ static int heart_cpu_read_from_file(struct heart_cpu_dat_cache *cache)
                        ret = sscanf(buf + len, "%lu %lu %d %d ", &utime, &stime, &pid, &state);
                        if (ret <= 0) {
                                _E("file read fail %s", buf + len);
+                               g_array_free(table->cpu_info, TRUE);
                                free(table);
                                fclose(fp);
                                return RESOURCED_ERROR_FAIL;
                        }
                        ci = malloc(sizeof(struct heart_cpu_info));
                        if (!ci) {
+                               g_array_free(table->cpu_info, TRUE);
                                free(table);
                                fclose(fp);
                                return RESOURCED_ERROR_OUT_OF_MEMORY;
@@ -1220,6 +1222,7 @@ static void dbus_heart_get_cpu_data_list(GDBusMethodInvocation *invocation, GVar
        if (ret) {
                _E("pthread_mutex_unlock() failed, %d", ret);
                g_variant_builder_unref(sub_builder);
+               g_variant_builder_clear(&builder);
                goto failure;
        }