处理goto导致的编译不通过。

This commit is contained in:
zhengchao
2018-11-29 16:39:25 +08:00
parent f76a8c5ca2
commit 0e47b8d715
4 changed files with 34 additions and 38 deletions

View File

@@ -275,41 +275,31 @@ static EVP_PKEY* transform_key_to_EVP(const char* str)
return key;
}
static void err_out(X509* cert, EVP_PKEY* key, STACK_OF(X509)* chain)
{
if(cert)
{
X509_free(cert);
}
if(key)
{
EVP_PKEY_free(key);
}
if(chain)
{
sk_X509_pop_free(chain, X509_free);
}
return;
}
static struct keyring_private* get_keyring_from_response(const char* data)
{
X509* cert = NULL;
X509* chain_cert = NULL;
struct keyring_private* _kyr=NULL;
EVP_PKEY* key = NULL;
STACK_OF(X509)* chain = NULL;
cJSON* data_json = NULL;
cJSON* chain_cert_json = NULL;
cJSON* cert_json = NULL;
cJSON* key_json = NULL;
cJSON* chain_json = NULL;
if(data == NULL)
{
goto error_out;
}
cJSON* data_json = cJSON_Parse(data);
data_json = cJSON_Parse(data);
if(data_json == NULL)
{
goto error_out;
}
cJSON* cert_json = NULL;
cJSON* key_json = NULL;
cJSON* chain_json = NULL;
cert_json = cJSON_GetObjectItemCaseSensitive(data_json, "CERTIFICATE");
key_json = cJSON_GetObjectItemCaseSensitive(data_json, "PRIVATE_KEY");
chain_json = cJSON_GetObjectItemCaseSensitive(data_json, "CERTIFICATE_CHAIN");
@@ -333,11 +323,10 @@ static struct keyring_private* get_keyring_from_response(const char* data)
{
goto error_out;
}
cJSON* chain_cert_json = NULL;
chain = sk_X509_new_null();
cJSON_ArrayForEach(chain_cert_json, chain_json)
{
X509* chain_cert = NULL;
chain_cert = NULL;
if (chain_cert_json && chain_cert_json->valuestring != NULL)
{
chain_cert = transform_cert_to_x509(chain_cert_json->valuestring);
@@ -349,7 +338,7 @@ static struct keyring_private* get_keyring_from_response(const char* data)
sk_X509_push(chain, chain_cert);
ssl_x509_refcount_inc(chain_cert);
}
struct keyring_private* _kyr= keyring_new();
_kyr= keyring_new();
keyring_set_cert(_kyr, cert);
keyring_set_key(_kyr, key);
keyring_set_chain(_kyr, chain);