diff --git a/common/coauth/src/coauth_funcs.c b/common/coauth/src/coauth_funcs.c index e73dd39f38398156fd0c956b122530333c514518..2b74875657073a5ae22c1157dd4b76fe92e779a8 100644 --- a/common/coauth/src/coauth_funcs.c +++ b/common/coauth/src/coauth_funcs.c @@ -71,12 +71,12 @@ int32_t ScheduleFinish(const Buffer *executorMsg, ScheduleTokenHal *scheduleToke return RESULT_BAD_PARAM; } scheduleToken->scheduleResult = RESULT_GENERAL_ERROR; - // ExecutorResultInfo *resultInfo = Malloc(sizeof(ExecutorResultInfo)); ExecutorResultInfo *resultInfo = GetExecutorResultInfo(executorMsg); if (resultInfo == NULL) { LOG_ERROR("tlv parse failed"); return RESULT_BAD_PARAM; } + scheduleToken->scheduleId = resultInfo->scheduleId; CoAuthSchedule coAuthSchedule; coAuthSchedule.scheduleId = resultInfo->scheduleId; int32_t ret = GetCoAuthSchedule(&coAuthSchedule); @@ -84,6 +84,10 @@ int32_t ScheduleFinish(const Buffer *executorMsg, ScheduleTokenHal *scheduleToke LOG_ERROR("get coAuth schedule failed"); goto EXIT; } + if (resultInfo->result != RESULT_SUCCESS) { + LOG_ERROR("executor result failed"); + goto EXIT; + } Buffer *publicKey = NULL; uint32_t index; @@ -104,11 +108,6 @@ int32_t ScheduleFinish(const Buffer *executorMsg, ScheduleTokenHal *scheduleToke DestoryBuffer(publicKey); goto EXIT; } - - ret = RemoveCoAuthSchedule(coAuthSchedule.scheduleId); - if (ret != RESULT_SUCCESS) { - LOG_ERROR("remove failed"); - } ret = TokenDataGetAndSign(coAuthSchedule.executors[0].authType, resultInfo, scheduleToken); DestoryBuffer(publicKey);