处理goto导致的编译不通过。
This commit is contained in:
@@ -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);
|
||||
|
||||
Reference in New Issue
Block a user