diff options
author | Dongsun Lee <ds73.lee@samsung.com> | 2016-07-01 11:35:32 +0900 |
---|---|---|
committer | Dongsun Lee <ds73.lee@samsung.com> | 2016-07-01 11:35:32 +0900 |
commit | 291f542a905e347c2b08a1c76787b7a4821e6239 (patch) | |
tree | f1e6dd1da6f12f147bfcdc707f0e40b492b4e3e5 | |
parent | 9c555c00817c5a6777bfa7e812d21bdca992aed6 (diff) | |
download | key-manager-291f542a905e347c2b08a1c76787b7a4821e6239.tar.gz key-manager-291f542a905e347c2b08a1c76787b7a4821e6239.tar.bz2 key-manager-291f542a905e347c2b08a1c76787b7a4821e6239.zip |
bug fix for memory leak in CAPIsubmit/tizen_common/20160701.180000submit/tizen/20160701.024415accepted/tizen/wearable/20160701.043940accepted/tizen/tv/20160701.043927accepted/tizen/mobile/20160701.043932accepted/tizen/ivi/20160701.043934accepted/tizen/common/20160701.193002
Change-Id: I9dcce77ae4a8593a65f5dfc052a2ddb654322da2
Signed-off-by: Dongsun Lee <ds73.lee@samsung.com>
-rw-r--r-- | src/manager/client-capi/ckmc-manager.cpp | 2 | ||||
-rw-r--r-- | src/manager/client-capi/ckmc-type.cpp | 10 |
2 files changed, 6 insertions, 6 deletions
diff --git a/src/manager/client-capi/ckmc-manager.cpp b/src/manager/client-capi/ckmc-manager.cpp index 7f337a1e..1cc412ba 100644 --- a/src/manager/client-capi/ckmc-manager.cpp +++ b/src/manager/client-capi/ckmc-manager.cpp @@ -445,7 +445,7 @@ int ckmc_get_pkcs12(const char *alias, const char *key_password, if (ret != CKMC_ERROR_NONE) { ckmc_key_free(private_key); ckmc_cert_free(cert); - ckmc_cert_list_free(ca_cert_list); + ckmc_cert_list_all_free(ca_cert_list); } return ret; diff --git a/src/manager/client-capi/ckmc-type.cpp b/src/manager/client-capi/ckmc-type.cpp index 75fde1c0..cadc56d9 100644 --- a/src/manager/client-capi/ckmc-type.cpp +++ b/src/manager/client-capi/ckmc-type.cpp @@ -230,8 +230,7 @@ int ckmc_load_cert_from_file(const char *file_path, ckmc_cert_s **cert) int ret = _ckmc_load_cert_from_x509(pcert, cert); - if (ret != CKMC_ERROR_NONE) - X509_free(pcert); + X509_free(pcert); return ret; } @@ -417,8 +416,9 @@ int ckmc_load_from_pkcs12_file(const char *file_path, const char *passphrase, ckmc_cert_list_s *tmpCertList = NULL; while ((popedCert = sk_X509_pop(ca)) != NULL) { - if ((tmpRet = _ckmc_load_cert_from_x509(popedCert, - &popedCkmCert)) != CKMC_ERROR_NONE) + tmpRet = _ckmc_load_cert_from_x509(popedCert, &popedCkmCert); + X509_free(popedCert); + if (tmpRet != CKMC_ERROR_NONE) return CKMC_ERROR_OUT_OF_MEMORY; if (tmpCertList == NULL) { // first @@ -502,7 +502,7 @@ void ckmc_pkcs12_free(ckmc_pkcs12_s *pkcs12) ckmc_key_free(pkcs12->priv_key); ckmc_cert_free(pkcs12->cert); - ckmc_cert_list_free(pkcs12->ca_chain); + ckmc_cert_list_all_free(pkcs12->ca_chain); free(pkcs12); } |