Add NULL data check for mgr_get_private_data 64/188064/2
authorsungrae jo <seongrae.jo@samsung.com>
Fri, 31 Aug 2018 02:34:58 +0000 (11:34 +0900)
committersungrae jo <seongrae.jo@samsung.com>
Wed, 5 Sep 2018 02:02:11 +0000 (11:02 +0900)
Change-Id: I22cd412df5e4655c4d5c0f608852d111134e2597
Signed-off-by: sungrae jo <seongrae.jo@samsung.com>
client/vc_mgr_dbus.c
server/vcd_dbus_server.c
server/vcd_engine_agent.c

index 3ee907559d6165af82474d6b5596a42a0c327c18..246c59e06f72ed14c8f9efb95b86e371a23b26c0 100644 (file)
@@ -1561,11 +1561,12 @@ int vc_mgr_dbus_request_get_private_data(int pid, const char* key, char** data)
                dbus_message_unref(result_msg);
 
                if (0 == result) {
-                       if (NULL != data && NULL != temp) {
+                       if (0 == strncmp(temp, "#NULL", 5)) {
+                               *data = NULL;
+                       } else {
                                *data = strdup(temp);
-
-                               SLOG(LOG_DEBUG, TAG_VCM, "@@ vc mgr get private data : result = %d private data = %s", result, *data);
                        }
+                       SLOG(LOG_DEBUG, TAG_VCM, "@@ vc mgr get private data : result = %d private data = %s", result, *data);
                } else {
                        SLOG(LOG_ERROR, TAG_VCM, "@@ vc mgr get private data : result = %d", result);
                }
index 297ef1331d2ebed21c318abfe548aa2351b4d2f5..71329a68dceda212463606b43ae8b5f3c1fd28ba 100644 (file)
@@ -588,17 +588,25 @@ int vcd_dbus_server_mgr_get_private_data(DBusConnection* conn, DBusMessage* msg)
                ret = vcd_server_mgr_get_private_data(pid, key, &data);
        }
 
+       char *temp_data = NULL;
+       if (NULL == data) {
+               SLOG(LOG_DEBUG, TAG_VCD, "[Dbus INFO] data parameter is NULL");
+               temp_data = strdup("#NULL");
+       } else {
+               temp_data = strdup(data);
+       }
+
        DBusMessage* reply;
        reply = dbus_message_new_method_return(msg);
 
        if (NULL != reply) {
                dbus_message_append_args(reply,
                                        DBUS_TYPE_INT32, &ret,
-                                       DBUS_TYPE_STRING, &data,
+                                       DBUS_TYPE_STRING, &temp_data,
                                        DBUS_TYPE_INVALID);
 
                if (0 == ret) {
-                       SLOG(LOG_DEBUG, TAG_VCD, "[OUT SUCCESS] Result(%d), private data(%s)", ret, data);
+                       SLOG(LOG_DEBUG, TAG_VCD, "[OUT SUCCESS] Result(%d), private data(%s)", ret, temp_data);
                } else {
                        SLOG(LOG_ERROR, TAG_VCD, "[OUT ERROR] Result(%d)", ret);
                }
@@ -615,7 +623,14 @@ int vcd_dbus_server_mgr_get_private_data(DBusConnection* conn, DBusMessage* msg)
 
        SLOG(LOG_DEBUG, TAG_VCD, "@@@");
 
-       if (NULL != data) free(data);
+       if (NULL != data) {
+               free(data);
+               data = NULL;
+       }
+       if (NULL != temp_data) {
+               free(temp_data);
+               temp_data = NULL;
+       }
 
        return 0;
 }
index 27aa72296c735dc50d98e422f1bdeeea74f06965..8794ae0b5a5bd3df7481099467cf6b91305e6486 100644 (file)
@@ -533,8 +533,8 @@ int vcd_engine_get_nlu_base_info(int pid, const char* key, char** value)
                        return VCD_ERROR_OPERATION_FAILED;
                }
        } else {
-               SLOG(LOG_ERROR, TAG_VCD, "[Engine Agent ERROR] Engine is not loaded or There is no nlu_base_info_request callback");
-               return VCD_ERROR_OPERATION_FAILED;
+               SLOG(LOG_ERROR, TAG_VCD, "[Engine Agent INFO] Engine is not loaded or There is no nlu_base_info_request callback");
+               return VCD_ERROR_NONE;
        }
 
        return 0;
@@ -555,8 +555,8 @@ int vcd_engine_set_private_data(int pid, const char* key, const char* data)
                        return VCD_ERROR_OPERATION_FAILED;
                }
        } else {
-               SLOG(LOG_ERROR, TAG_VCD, "[Engine Agent ERROR] Engine is not loaded or There is no private_data_set callback");
-               return VCD_ERROR_OPERATION_FAILED;
+               SLOG(LOG_ERROR, TAG_VCD, "[Engine Agent INFO] Engine is not loaded or There is no private_data_set callback");
+               return VCD_ERROR_NONE;
        }
 
        return 0;
@@ -582,8 +582,8 @@ int vcd_engine_get_private_data(int pid, const char* key, char** data)
                        return VCD_ERROR_OPERATION_FAILED;
                }
        } else {
-               SLOG(LOG_ERROR, TAG_VCD, "[Engine Agent ERROR] Engine is not loaded or There is no private_data_request callback");
-               return VCD_ERROR_OPERATION_FAILED;
+               SLOG(LOG_ERROR, TAG_VCD, "[Engine Agent INFO] Engine is not loaded or There is no private_data_request callback");
+               return VCD_ERROR_NONE;
        }
 
        return 0;
@@ -604,8 +604,8 @@ int vcd_engine_send_specific_engine_request(const char* engine_app_id, const cha
                        return VCD_ERROR_OPERATION_FAILED;
                }
        } else {
-               SLOG(LOG_ERROR, TAG_VCD, "[Engine Agent ERROR] Engine is not loaded or There is no specific_engine_request callback");
-               return VCD_ERROR_OPERATION_FAILED;
+               SLOG(LOG_ERROR, TAG_VCD, "[Engine Agent INFO] Engine is not loaded or There is no specific_engine_request callback");
+               return VCD_ERROR_NONE;
        }
 
        return 0;