From e28fd983315c6e72b100b88bd2fd6b5fdb575eea Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=E5=B4=94=E4=B8=80=E9=B8=A3?= Date: Fri, 14 Sep 2018 21:23:08 +0800 Subject: [PATCH] =?UTF-8?q?=E4=BF=AE=E5=A4=8D=E5=86=85=E5=AD=98=E6=B3=84?= =?UTF-8?q?=E6=BC=8F=E9=97=AE=E9=A2=98?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- platform/src/key_keeper.cpp | 3 +++ platform/src/ssl_utils.cc | 2 +- platform/test/test_tfe_rpc.cpp | 1 + 3 files changed, 5 insertions(+), 1 deletion(-) diff --git a/platform/src/key_keeper.cpp b/platform/src/key_keeper.cpp index b5bb73e..76756a2 100644 --- a/platform/src/key_keeper.cpp +++ b/platform/src/key_keeper.cpp @@ -292,6 +292,7 @@ static struct keyring_private* get_keyring_from_response(const char* data) return NULL; } sk_X509_push(chain, chain_cert); + ssl_x509_refcount_inc(chain_cert); } struct keyring_private* _kyr= keyring_new(); 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(); sk_X509_push(chain, ca); sk_X509_push(chain, forge_cert); + ssl_x509_refcount_inc(ca); + ssl_x509_refcount_inc(forge_cert); struct keyring_private* _kyr= keyring_new(); keyring_set_key(_kyr, forge_key); keyring_set_cert(_kyr, forge_cert); diff --git a/platform/src/ssl_utils.cc b/platform/src/ssl_utils.cc index 9b9daee..0e2c306 100644 --- a/platform/src/ssl_utils.cc +++ b/platform/src/ssl_utils.cc @@ -2033,7 +2033,7 @@ struct ssl_chello* ssl_chello_parse(const unsigned char* buff, size_t buff_len, _chello->max_version.major = buff[pos]; _chello->max_version.minor = buff[pos+1]; _chello->max_version.ossl_format=(uint16_t)_chello->max_version.major<<8|_chello->max_version.minor; - + pos += 34; /* Session ID */ if (pos + 1 > buff_len) diff --git a/platform/test/test_tfe_rpc.cpp b/platform/test/test_tfe_rpc.cpp index 0fe6e38..e687a46 100644 --- a/platform/test/test_tfe_rpc.cpp +++ b/platform/test/test_tfe_rpc.cpp @@ -180,6 +180,7 @@ static struct keyring* get_keyring_from_response(const char* data) if(chain_cert) printf("push to chain\n"); sk_X509_push(chain, chain_cert); + ssl_x509_refcount_inc(chain_cert); } struct keyring_private* _kyr= keyring_new(); printf("cert is %s", cert == NULL ? "null" : "not null\n");