TEE_Result tee_se_reader_open_session(struct tee_se_reader_proxy *proxy, struct tee_se_session **session) { TEE_Result ret; struct tee_se_session *s; assert(session && !*session); assert(proxy && proxy->reader); s = tee_se_session_alloc(proxy); if (!s) return TEE_ERROR_OUT_OF_MEMORY; ret = tee_se_reader_attach(proxy); if (ret != TEE_SUCCESS) goto err_free_session; *session = s; return TEE_SUCCESS; err_free_session: tee_se_session_free(s); return ret; }
TEE_Result tee_se_reader_open_session(struct tee_se_reader_proxy *proxy, struct tee_se_session **session) { TEE_Result ret; struct tee_se_session *s; TEE_ASSERT(session != NULL && *session == NULL); TEE_ASSERT(proxy != NULL && proxy->reader != NULL); s = tee_se_session_alloc(proxy); if (!s) return TEE_ERROR_OUT_OF_MEMORY; ret = tee_se_reader_attach(proxy); if (ret != TEE_SUCCESS) goto err_free_session; *session = s; return TEE_SUCCESS; err_free_session: tee_se_session_free(s); return ret; }