From c10fa7050051fc12f63dd3aa5896d116716e093f Mon Sep 17 00:00:00 2001 From: Jihoon Jung Date: Thu, 23 Aug 2018 16:17:29 +0900 Subject: [PATCH] Add precondition Change-Id: Ic81973c496b5ee830f2139ba49f9e1706bdbc8b9 Signed-off-by: Jihoon Jung --- include/mdg.h | 27 --------------------------- src/mdg.c | 53 +++++++++++++++++++++++++++++++++++++++++++++++------ src/mdg_private.h | 2 +- 3 files changed, 48 insertions(+), 34 deletions(-) diff --git a/include/mdg.h b/include/mdg.h index 5f43b12..de144ba 100755 --- a/include/mdg.h +++ b/include/mdg.h @@ -928,33 +928,6 @@ int mdg_device_info_get_device_id(mdg_device_h device, char **device_id); /** - * @brief Gets IP of the device handle. - * - * @since_tizen 5.0 - * @privlevel public - * - * @remarks The @a ip should be released using free(). - * - * @param[in] device Device handle - * @param[out] ip IP address - * - * @return 0 on success, otherwise a negative error value. - * @retval #MDG_ERROR_NONE Successful - * @retval #MDG_ERROR_INVALID_PARAMETER Invalid parameter - * - * @see mdg_device_info_create() - * @see mdg_device_info_clone() - * @see mdg_device_info_destroy() - * @see mdg_device_info_get_device_id() - * @see mdg_device_info_get_device_type() - * @see mdg_device_info_get_model_name() - * - */ -int mdg_device_info_get_addr(mdg_device_h device, char **addr); -int mdg_device_info_get_port(mdg_device_h device, int *port); -int mdg_device_info_get_secure_port(mdg_device_h device, int *secure_port); - -/** * @brief Gets model name of the device handle. * * @since_tizen 5.0 diff --git a/src/mdg.c b/src/mdg.c index d2e83d0..a37b824 100755 --- a/src/mdg.c +++ b/src/mdg.c @@ -63,6 +63,7 @@ EXPORT_API int mdg_deinitialize(mdg_h handle) int ret = MDG_ERROR_NONE; CHECK_FEATURE_SUPPORTED(MDG_FEATURE); + mdg_check_null_ret_error("handle", handle, MDG_ERROR_INVALID_PARAMETER); CHECK_HANDLE_IS_VALID(handle); _BEGIN(); @@ -210,6 +211,7 @@ EXPORT_API int mdg_device_regist_channel(mdg_h handle, char *channel_id, mdg_manager_s *_handle = handle; mdg_check_null_ret_error("handle", handle, MDG_ERROR_INVALID_PARAMETER); + mdg_check_null_ret_error("channel_id", channel_id, MDG_ERROR_INVALID_PARAMETER); CHECK_HANDLE_IS_VALID(_handle); _BEGIN(); @@ -243,6 +245,11 @@ EXPORT_API int mdg_device_send_response(mdg_h handle, char *device_id, char *cha mdg_manager_s *_handle = handle; mdg_check_null_ret_error("handle", handle, MDG_ERROR_INVALID_PARAMETER); + mdg_check_null_ret_error("device_id", device_id, MDG_ERROR_INVALID_PARAMETER); + mdg_check_null_ret_error("channel_id", channel_id, MDG_ERROR_INVALID_PARAMETER); + mdg_check_null_ret_error("data", data, MDG_ERROR_INVALID_PARAMETER); + cond_expr_ret(msg_id <= 0, MDG_ERROR_INVALID_PARAMETER); + cond_expr_ret(len <= 0, MDG_ERROR_INVALID_PARAMETER); CHECK_HANDLE_IS_VALID(handle); buf = g_try_malloc0(len + 1); @@ -285,6 +292,7 @@ EXPORT_API int mdg_device_unregist_channel(mdg_h handle, char *channel_id) mdg_manager_s *_handle = handle; mdg_check_null_ret_error("handle", handle, MDG_ERROR_INVALID_PARAMETER); + mdg_check_null_ret_error("channel_id", channel_id, MDG_ERROR_INVALID_PARAMETER); CHECK_HANDLE_IS_VALID(handle); _BEGIN(); @@ -301,7 +309,7 @@ EXPORT_API int mdg_device_unregist_channel(mdg_h handle, char *channel_id) } if (is_exist == false) - ret = MDG_ERROR_OPERATION_FAILED; + ret = MDG_ERROR_NO_DATA; if (ret == MDG_ERROR_NONE) { group_call_unregist_channel_sync(_handle->group_proxy, channel_id, &ret, NULL, &error); @@ -332,10 +340,12 @@ EXPORT_API int mdg_device_send_data(mdg_h handle, mdg_manager_s *_handle = handle; mdg_check_null_ret_error("handle", handle, MDG_ERROR_INVALID_PARAMETER); - CHECK_HANDLE_IS_VALID(handle); - mdg_device_s *dev = (mdg_device_s *)device; mdg_check_null_ret_error("dev", dev, MDG_ERROR_INVALID_PARAMETER); + mdg_check_null_ret_error("channel_id", channel_id, MDG_ERROR_INVALID_PARAMETER); + mdg_check_null_ret_error("data", data, MDG_ERROR_INVALID_PARAMETER); + cond_expr_ret(len <= 0, MDG_ERROR_INVALID_PARAMETER); + CHECK_HANDLE_IS_VALID(handle); buf = g_try_malloc0(len + 1); if (NULL == buf) { @@ -417,6 +427,7 @@ EXPORT_API int mdg_set_receive_file_cb(mdg_h handle, mdg_manager_s *_handle = handle; mdg_check_null_ret_error("handle", handle, MDG_ERROR_INVALID_PARAMETER); + mdg_check_null_ret_error("ejected_event_cb", receive_cb, MDG_ERROR_INVALID_PARAMETER); CHECK_HANDLE_IS_VALID(handle); _handle->receive_file_cb.receive_cb = receive_cb; @@ -452,6 +463,7 @@ EXPORT_API int mdg_device_get_local_device(mdg_h handle, mdg_manager_s *_handle = handle; mdg_check_null_ret_error("handle", handle, MDG_ERROR_INVALID_PARAMETER); + mdg_check_null_ret_error("device", device, MDG_ERROR_INVALID_PARAMETER); CHECK_HANDLE_IS_VALID(handle); group_call_get_local_device_sync(_handle->group_proxy, &va, NULL, &error); @@ -617,11 +629,11 @@ EXPORT_API int mdg_group_info_clone(mdg_group_h *target, CHECK_FEATURE_SUPPORTED(MDG_FEATURE); - mdg_group_s * src = (mdg_group_s *)source; + mdg_group_s *src = (mdg_group_s *)source; mdg_check_null_ret_error("source", source, MDG_ERROR_INVALID_PARAMETER); - *target = (mdg_group_s *)g_malloc0(sizeof(mdg_group_s)); mdg_check_null_ret_error("target", target, MDG_ERROR_INVALID_PARAMETER); + *target = (mdg_group_s *)g_malloc0(sizeof(mdg_group_s)); mdg_group_s *dst = *target; if (src->device_id) @@ -641,7 +653,7 @@ EXPORT_API int mdg_group_info_destroy(mdg_group_h data) CHECK_FEATURE_SUPPORTED(MDG_FEATURE); - mdg_group_s * group = (mdg_group_s *)data; + mdg_group_s *group = (mdg_group_s *)data; mdg_check_null_ret_error("group", group, MDG_ERROR_INVALID_PARAMETER); if (group->device_id) { @@ -665,6 +677,8 @@ EXPORT_API int mdg_group_info_get_device_id( int ret = MDG_ERROR_NONE; CHECK_FEATURE_SUPPORTED(MDG_FEATURE); + mdg_check_null_ret_error("group", group, MDG_ERROR_INVALID_PARAMETER); + mdg_check_null_ret_error("device_id", device_id, MDG_ERROR_INVALID_PARAMETER); *device_id = g_strdup(((mdg_group_s *)group)->device_id); @@ -677,6 +691,8 @@ EXPORT_API int mdg_group_info_get_type(mdg_group_h group, int ret = MDG_ERROR_NONE; CHECK_FEATURE_SUPPORTED(MDG_FEATURE); + mdg_check_null_ret_error("group", group, MDG_ERROR_INVALID_PARAMETER); + mdg_check_null_ret_error("type", type, MDG_ERROR_INVALID_PARAMETER); *type = ((mdg_group_s *)group)->type; @@ -689,6 +705,8 @@ EXPORT_API int mdg_group_info_get_name( int ret = MDG_ERROR_NONE; CHECK_FEATURE_SUPPORTED(MDG_FEATURE); + mdg_check_null_ret_error("group", group, MDG_ERROR_INVALID_PARAMETER); + mdg_check_null_ret_error("name", name, MDG_ERROR_INVALID_PARAMETER); *name = g_strdup(((mdg_group_s *)group)->group_name); @@ -784,6 +802,8 @@ EXPORT_API int mdg_device_info_get_device_id( int ret = MDG_ERROR_NONE; CHECK_FEATURE_SUPPORTED(MDG_FEATURE); + mdg_check_null_ret_error("device", device, MDG_ERROR_INVALID_PARAMETER); + mdg_check_null_ret_error("device_id", device_id, MDG_ERROR_INVALID_PARAMETER); *device_id = g_strdup(((mdg_device_s *)device)->device_id); @@ -796,6 +816,8 @@ EXPORT_API int mdg_device_info_get_model_name( int ret = MDG_ERROR_NONE; CHECK_FEATURE_SUPPORTED(MDG_FEATURE); + mdg_check_null_ret_error("device", device, MDG_ERROR_INVALID_PARAMETER); + mdg_check_null_ret_error("model_name", model_name, MDG_ERROR_INVALID_PARAMETER); *model_name = g_strdup(((mdg_device_s *)device)->model_name); @@ -808,6 +830,8 @@ EXPORT_API int mdg_device_info_get_device_name( int ret = MDG_ERROR_NONE; CHECK_FEATURE_SUPPORTED(MDG_FEATURE); + mdg_check_null_ret_error("device", device, MDG_ERROR_INVALID_PARAMETER); + mdg_check_null_ret_error("device_name", device_name, MDG_ERROR_INVALID_PARAMETER); *device_name = g_strdup(((mdg_device_s *)device)->device_name); @@ -820,6 +844,8 @@ EXPORT_API int mdg_device_info_get_platform_ver( int ret = MDG_ERROR_NONE; CHECK_FEATURE_SUPPORTED(MDG_FEATURE); + mdg_check_null_ret_error("device", device, MDG_ERROR_INVALID_PARAMETER); + mdg_check_null_ret_error("platform_ver", platform_ver, MDG_ERROR_INVALID_PARAMETER); *platform_ver = g_strdup(((mdg_device_s *)device)->platform_ver); @@ -832,6 +858,8 @@ EXPORT_API int mdg_device_info_get_vendor_id( int ret = MDG_ERROR_NONE; CHECK_FEATURE_SUPPORTED(MDG_FEATURE); + mdg_check_null_ret_error("device", device, MDG_ERROR_INVALID_PARAMETER); + mdg_check_null_ret_error("vendor_id", vendor_id, MDG_ERROR_INVALID_PARAMETER); *vendor_id = g_strdup(((mdg_device_s *)device)->vendor_id); @@ -844,6 +872,8 @@ EXPORT_API int mdg_device_info_get_profile( int ret = MDG_ERROR_NONE; CHECK_FEATURE_SUPPORTED(MDG_FEATURE); + mdg_check_null_ret_error("device", device, MDG_ERROR_INVALID_PARAMETER); + mdg_check_null_ret_error("profile", profile, MDG_ERROR_INVALID_PARAMETER); *profile = g_strdup(((mdg_device_s *)device)->profile); @@ -856,6 +886,8 @@ EXPORT_API int mdg_device_info_is_invited( int ret = MDG_ERROR_NONE; CHECK_FEATURE_SUPPORTED(MDG_FEATURE); + mdg_check_null_ret_error("device", device, MDG_ERROR_INVALID_PARAMETER); + mdg_check_null_ret_error("is_invited", is_invited, MDG_ERROR_INVALID_PARAMETER); *is_invited = ((mdg_device_s *)device)->is_invited; @@ -868,6 +900,8 @@ EXPORT_API int mdg_device_info_get_type( int ret = MDG_ERROR_NONE; CHECK_FEATURE_SUPPORTED(MDG_FEATURE); + mdg_check_null_ret_error("device", device, MDG_ERROR_INVALID_PARAMETER); + mdg_check_null_ret_error("type", type, MDG_ERROR_INVALID_PARAMETER); *type = ((mdg_device_s *)device)->type; @@ -1015,6 +1049,7 @@ EXPORT_API int mdg_request_result_callback(mdg_h handle, mdg_manager_s *_handle = handle; mdg_check_null_ret_error("handle", handle, MDG_ERROR_INVALID_PARAMETER); + CHECK_HANDLE_IS_VALID(handle); _handle->request_result_cb.result_cb = result_cb; _handle->request_result_cb.user_data = user_data; @@ -1029,6 +1064,8 @@ EXPORT_API int mdg_set_invited_event_cb(mdg_h handle, mdg_invited_event_cb invit mdg_manager_s *_handle = handle; mdg_check_null_ret_error("handle", handle, MDG_ERROR_INVALID_PARAMETER); + mdg_check_null_ret_error("invited_event_cb", invited_event_cb, MDG_ERROR_INVALID_PARAMETER); + CHECK_HANDLE_IS_VALID(handle); _handle->invited_event_cb.invited_event_cb = invited_event_cb; _handle->invited_event_cb.user_data = user_data; @@ -1044,6 +1081,7 @@ EXPORT_API int mdg_unset_invited_event_cb(mdg_h handle) mdg_manager_s *_handle = handle; mdg_check_null_ret_error("handle", handle, MDG_ERROR_INVALID_PARAMETER); + CHECK_HANDLE_IS_VALID(handle); _handle->invited_event_cb.invited_event_cb = NULL; _handle->invited_event_cb.user_data = NULL; @@ -1059,6 +1097,8 @@ EXPORT_API int mdg_set_ejected_event_cb(mdg_h handle, mdg_ejected_event_cb eject mdg_manager_s *_handle = handle; mdg_check_null_ret_error("handle", handle, MDG_ERROR_INVALID_PARAMETER); + mdg_check_null_ret_error("ejected_event_cb", ejected_event_cb, MDG_ERROR_INVALID_PARAMETER); + CHECK_HANDLE_IS_VALID(handle); _handle->ejected_event_cb.ejected_event_cb = ejected_event_cb; _handle->ejected_event_cb.user_data = user_data; @@ -1074,6 +1114,7 @@ EXPORT_API int mdg_unset_ejected_event_cb(mdg_h handle) mdg_manager_s *_handle = handle; mdg_check_null_ret_error("handle", handle, MDG_ERROR_INVALID_PARAMETER); + CHECK_HANDLE_IS_VALID(handle); _handle->ejected_event_cb.ejected_event_cb = NULL; _handle->ejected_event_cb.user_data = NULL; diff --git a/src/mdg_private.h b/src/mdg_private.h index 5722993..b0d622e 100755 --- a/src/mdg_private.h +++ b/src/mdg_private.h @@ -186,7 +186,7 @@ typedef struct _mdg_manager_s { #define CHECK_HANDLE_IS_VALID(handle) { \ if (g_slist_find(handle_list, handle) == NULL) \ - return MDG_ERROR_OPERATION_FAILED; \ + return MDG_ERROR_NO_DATA; \ } /** -- 2.7.4