Bug fix of removing all data for command verification 60/202860/2 accepted/tizen/unified/20190410.002041 submit/tizen/20190408.060111
authorhj kim <backto.kim@samsung.com>
Fri, 5 Apr 2019 07:23:10 +0000 (16:23 +0900)
committerhj kim <backto.kim@samsung.com>
Mon, 8 Apr 2019 05:40:37 +0000 (14:40 +0900)
Change-Id: Iafaed5f04ea2dc879a65fc7448966de55d83ee31

svc/media_controller_svc.c

index 81dfa42..f39a3c8 100644 (file)
@@ -141,24 +141,37 @@ static void __mc_set_data(gpointer data, gpointer user_data)
 
 static void __mc_get_data(gpointer data, gpointer user_data)
 {
+
        mc_list_data_set_t *_data = (mc_list_data_set_t *)data;
        mc_list_user_data *_user_data = (mc_list_user_data *)user_data;
-       mc_comm_msg_s *_message = (mc_comm_msg_s *)_user_data->message;
+       mc_comm_msg_s *_message = NULL;
+       unsigned int i = 0;
+       unsigned int length_of_list = 0;
+       char *value = NULL;
+
+       mc_retm_if(!data, "Invalid data");
+       mc_retm_if(!user_data, "Invalid user_data");
+
+       _message = (mc_comm_msg_s *)_user_data->message;
+       mc_retm_if(_message->msg_size == 0, "Invalid msg_size");
+       mc_retm_if(!MC_STRING_VALID(_message->msg), "Invalid msg");
 
        if (_data->s_data != NULL) {
-               unsigned int i = 0;
-               unsigned int length_of_list = g_list_length(_data->s_data);
-               char *value = NULL;
+
+               length_of_list = g_list_length(_data->s_data);
+
                for (i = 0; i < length_of_list; i++) {
+
                        value = (char *)g_list_nth_data(_data->s_data, i);
-                       if ((value != NULL) && (strlen(value) == _message->msg_size)) {
-                               if (strncmp(value, _message->msg, _message->msg_size) == 0) {
-                                       _data->s_data = g_list_remove(_data->s_data, value);
-                                       MC_SAFE_FREE(value);
-                                       _user_data->result++;
-                               }
+
+                       if (g_strcmp0(value, _message->msg) == 0) {
+                               _data->s_data = g_list_remove(_data->s_data, value);
+                               MC_SAFE_FREE(value);
+                               _user_data->result++;
+                               break;
                        }
                }
+
                if (g_list_length(_data->s_data) == 0)
                        _data->s_data = NULL;
        }