Fix memory issue 27/137227/1 submit/tizen/20170705.023006
authorKichan Kwon <k_c.kwon@samsung.com>
Wed, 5 Jul 2017 02:54:51 +0000 (11:54 +0900)
committerKichan Kwon <k_c.kwon@samsung.com>
Wed, 5 Jul 2017 02:55:05 +0000 (11:55 +0900)
Change-Id: I2ba37dd792224f664d728da97e5c25825d9065fb
Signed-off-by: Kichan Kwon <k_c.kwon@samsung.com>
src/runtime_info_usage.c

index 1adaec8..ee172bd 100644 (file)
@@ -176,9 +176,6 @@ static GVariant *runtime_info_dbus_request_usage_info(runtime_info_usage_type_e
                //LCOV_EXCL_STOP
        }
 
-       if (args_in)
-               g_variant_unref(args_in);
-
        usage = g_variant_get_child_value(args_out, 0);
        g_variant_unref(args_out);
 
@@ -328,7 +325,8 @@ API int runtime_info_get_process_memory_info(int *pid, int size, process_memory_
        }
 
        /* Check whether the received usage has expected format or not */
-       if (g_strcmp0(g_variant_get_type_string(usages), "a(iiiiiii)")) {
+       if (g_strcmp0(g_variant_get_type_string(usages), "a(iiiiiii)") ||
+                       g_variant_n_children(usages) != size) {
                //LCOV_EXCL_START : system error
                _E("DBUS_METHOD_CALL: received dbus message is not in expected format");
                g_variant_unref(usages);
@@ -347,13 +345,13 @@ API int runtime_info_get_process_memory_info(int *pid, int size, process_memory_
        g_variant_iter_init(&iter, usages);
        for (i = 0; i < size; i++)
                g_variant_iter_next(&iter, "(iiiiiii)",
-                               &(info[i]->vsz),
-                               &(info[i]->rss),
-                               &(info[i]->pss),
-                               &(info[i]->shared_clean),
-                               &(info[i]->shared_dirty),
-                               &(info[i]->private_clean),
-                               &(info[i]->private_dirty));
+                               &((*info)[i].vsz),
+                               &((*info)[i].rss),
+                               &((*info)[i].pss),
+                               &((*info)[i].shared_clean),
+                               &((*info)[i].shared_dirty),
+                               &((*info)[i].private_clean),
+                               &((*info)[i].private_dirty));
 
        g_variant_unref(usages);
 
@@ -436,7 +434,8 @@ API int runtime_info_get_process_cpu_usage(int *pid, int size, process_cpu_usage
        }
 
        /* Check whether the received usage has expected format or not */
-       if (g_strcmp0(g_variant_get_type_string(usages), "a(ii)")) {
+       if (g_strcmp0(g_variant_get_type_string(usages), "a(ii)") ||
+                       g_variant_n_children(usages) != size) {
                //LCOV_EXCL_START : system error
                _E("DBUS_METHOD_CALL: received dbus message is not in expected format");
                g_variant_unref(usages);
@@ -456,7 +455,7 @@ API int runtime_info_get_process_cpu_usage(int *pid, int size, process_cpu_usage
 
        g_variant_iter_init(&iter, usages);
        for (i = 0; i < size; i++)
-               g_variant_iter_next(&iter, "(ii)", &(usage[i]->utime), &(usage[i]->stime));
+               g_variant_iter_next(&iter, "(ii)", &((*usage)[i].utime), &((*usage)[i].stime));
 
        g_variant_unref(usages);