Add state check logic in vc_get_result 07/166207/1
authorSuyeon Hwang <stom.hwang@samsung.com>
Fri, 22 Dec 2017 11:55:42 +0000 (20:55 +0900)
committerSuyeon Hwang <stom.hwang@samsung.com>
Tue, 9 Jan 2018 01:26:35 +0000 (01:26 +0000)
Change-Id: I0dd52a857b2238116d3a2595926203e36201f15b
Signed-off-by: Suyeon Hwang <stom.hwang@samsung.com>
(cherry picked from commit 234291924f4c92e43863101be4065b57d5d75d3f)

client/vc.c

index c89e7f9..d9a5337 100644 (file)
@@ -1703,6 +1703,20 @@ int vc_get_result(vc_result_cb callback, void* user_data)
 
        SLOG(LOG_DEBUG, TAG_VCC, "@@@ [Client] Get result");
 
+       vc_state_e state;
+       if (0 != vc_client_get_client_state(g_vc, &state)) {
+               SLOG(LOG_ERROR, TAG_VCC, "[ERROR] A handle is not available");
+               SLOG(LOG_DEBUG, TAG_VCC, "@@@");
+               return VC_ERROR_INVALID_STATE;
+       }
+
+       /* check state */
+       if (state != VC_STATE_READY) {
+               SLOG(LOG_ERROR, TAG_VCC, "[ERROR] Invalid State: Current state is not 'READY'");
+               SLOG(LOG_DEBUG, TAG_VCC, "@@@");
+               return VC_ERROR_INVALID_STATE;
+       }
+
        if (NULL == callback) {
                SLOG(LOG_ERROR, TAG_VCC, "[ERROR] Client result callback is NULL");
                return VC_ERROR_INVALID_PARAMETER;