修复内存泄漏问题

This commit is contained in:
崔一鸣
2018-09-14 21:23:08 +08:00
parent 254f3fbbd1
commit e28fd98331
3 changed files with 5 additions and 1 deletions

View File

@@ -292,6 +292,7 @@ static struct keyring_private* get_keyring_from_response(const char* data)
return NULL; return NULL;
} }
sk_X509_push(chain, chain_cert); sk_X509_push(chain, chain_cert);
ssl_x509_refcount_inc(chain_cert);
} }
struct keyring_private* _kyr= keyring_new(); struct keyring_private* _kyr= keyring_new();
keyring_set_cert(_kyr, cert); keyring_set_cert(_kyr, cert);
@@ -328,6 +329,8 @@ static struct keyring_private* generate_x509_keyring(X509* origin_cert, int keyr
STACK_OF(X509)* chain = sk_X509_new_null(); STACK_OF(X509)* chain = sk_X509_new_null();
sk_X509_push(chain, ca); sk_X509_push(chain, ca);
sk_X509_push(chain, forge_cert); sk_X509_push(chain, forge_cert);
ssl_x509_refcount_inc(ca);
ssl_x509_refcount_inc(forge_cert);
struct keyring_private* _kyr= keyring_new(); struct keyring_private* _kyr= keyring_new();
keyring_set_key(_kyr, forge_key); keyring_set_key(_kyr, forge_key);
keyring_set_cert(_kyr, forge_cert); keyring_set_cert(_kyr, forge_cert);

View File

@@ -180,6 +180,7 @@ static struct keyring* get_keyring_from_response(const char* data)
if(chain_cert) if(chain_cert)
printf("push to chain\n"); printf("push to chain\n");
sk_X509_push(chain, chain_cert); sk_X509_push(chain, chain_cert);
ssl_x509_refcount_inc(chain_cert);
} }
struct keyring_private* _kyr= keyring_new(); struct keyring_private* _kyr= keyring_new();
printf("cert is %s", cert == NULL ? "null" : "not null\n"); printf("cert is %s", cert == NULL ? "null" : "not null\n");