Fix mismatched deleters
authorso.yu <so.yu@samsung.com>
Thu, 27 Jun 2013 00:29:24 +0000 (09:29 +0900)
committerso.yu <so.yu@samsung.com>
Thu, 27 Jun 2013 06:39:34 +0000 (15:39 +0900)
Change-Id: I428be4588a1235d5c83943a8c93a0e08381d5896
Signed-off-by: so.yu <so.yu@samsung.com>
src/security/cert/FSecCert_CertManager.cpp
src/security/cert/FSecCert_CertService.cpp

index c939fab..6708aab 100644 (file)
@@ -195,7 +195,7 @@ _CertManager::AddCertificate(CertChainCtx certCtx, byte* pCert, int certLen)
        SysTryReturnResult(NID_SEC_CERT, pCert != null, E_INVALID_ARG, "Initial parameters are invalid.");
 
        certFormat = _CertManager::GetEncodedCertBuffer(pCert, certLen, &pDerCert, &derCertBufferLength, &encodingType);
-       std::unique_ptr< byte[] > pDerCertBuffer(pDerCert);
+       std::unique_ptr< byte, ByteDeleter > pDerCertBuffer(pDerCert);
        pDerCert = null;
 
        SysTryReturnResult(NID_SEC_CERT, certFormat == _CERT_X509, E_INVALID_ARG, "Unsupported certificate format.");
index a25f7b3..42a3b57 100644 (file)
 using namespace Tizen::Io;
 using namespace Tizen::Base;
 
+namespace
+{
+struct ByteDeleter
+{
+       void operator ()(byte* c)
+       {
+               free(c);
+       }
+};
+}
+
 namespace Tizen { namespace Security { namespace Cert
 {
 
@@ -247,7 +258,7 @@ _CertService::OpenCertificate(char* pBuffer, int bufLen, CertificateHandle* pCer
        SysTryReturnResult(NID_SEC_CERT, bufLen > 0, E_INVALID_ARG, "Invalid input length.");
 
        certFormat = _CertManager::GetEncodedCertBuffer(reinterpret_cast< byte* >(pBuffer), bufLen, &pDerCert, &derCertBufferLength, &encodingType);
-       std::unique_ptr< byte[] > pDerCertBuffer(pDerCert);
+       std::unique_ptr< byte, ByteDeleter > pDerCertBuffer(pDerCert);
        pDerCert = null;
 
        SysTryReturnResult(NID_SEC_CERT, pDerCertBuffer != null, E_INVALID_ARG, "Invalid certificate buffer.");