diff --git a/src/soap_end_point.c b/src/soap_end_point.c index 16dba80..14eaa22 100644 --- a/src/soap_end_point.c +++ b/src/soap_end_point.c @@ -63,22 +63,20 @@ char* req_login(LassoServer *server, char *soap_msg) rc = db_get_response_dump(login->assertionArtifact, &response_dump); if (rc) { fprintf(stderr, "db_get_response_dump failed\n"); - lasso_login_destroy(login); - return NULL; - } - rc = lasso_login_set_assertion_from_dump(login, response_dump); - if (rc) { - fprintf(stderr, "set_assertion_from_dump failed\n"); - lasso_login_destroy(login); - return NULL; - } - rc = db_remove_response_dump(login->assertionArtifact); - if (rc) { - fprintf(stderr, "db_remove_response_dump failed\n"); - lasso_login_destroy(login); - return NULL; + } else { + rc = lasso_login_set_assertion_from_dump(login, response_dump); + if (rc) { + fprintf(stderr, "set_assertion_from_dump failed\n"); + } + rc = db_remove_response_dump(login->assertionArtifact); + if (rc) { + fprintf(stderr, "db_remove_response_dump failed\n"); + } } + rc = lasso_login_build_response_msg(login); + response_dump = strdup(LASSO_PROFILE(login)->msg_body); + lasso_login_destroy(login); return response_dump;