Fix accessing freed memory in X509CertificateStore::Update()
authorjc815.lee <jc815.lee@samsung.com>
Tue, 15 Oct 2013 00:49:09 +0000 (09:49 +0900)
committerjc815.lee <jc815.lee@samsung.com>
Tue, 15 Oct 2013 01:04:52 +0000 (10:04 +0900)
[model]
[binary_type] platform
[customer]
[issue#]
[problem] pOldBuffer accesses freed memory.
[cause] Original momory pointer from pOldEncodedData is deleted.
[solution] remove explicit free code of unique_ptr
[team] Base F/W
[request] N/A
[horizontal_expansion] N/A

Change-Id: I7bee97f9592a2a95d68cf55a7bcacbc5aa49314e
Signed-off-by: jc815.lee <jc815.lee@samsung.com>
src/security/cert/FSecCert_Base64.cpp
src/security/cert/FSecCert_X509CertificateStoreImpl.cpp

index 275b279..340351f 100644 (file)
@@ -69,8 +69,6 @@ _Base64::Decode(char* pIn, int inSize, byte* pOut, int& outSize)
        }
 
        std::unique_ptr< ByteBuffer > pDecodedBuffer(Tizen::Base::Utility::StringUtil::DecodeBase64StringN(encodedStr));
-       result r = GetLastResult();
-       SysTryReturn(NID_SEC_CERT, r == E_SUCCESS, -1 , E_SYSTEM, "[%s] Failed to DecodeBase64StringN.", GetErrorMessage(r));
        SysTryReturn(NID_SEC_CERT, pDecodedBuffer != null, -1, E_SYSTEM, "[E_SYSTEM] Failed to perform base64 decoding.");
 
        if (outSize > pDecodedBuffer->GetRemaining())
index 1df2b3b..fdfe3a8 100644 (file)
@@ -381,7 +381,7 @@ _X509CertificateStoreImpl::Update(CertificateType certificateType, const Tizen::
        oldBufferLen = pOldEncodedData->GetRemaining();
        SysTryReturnResult(NID_SEC_CERT, oldBufferLen > 0, E_INVALID_ARG, "Input old certificate length is not positive.");
 
-       pOldEncodedData.reset(null);
+       //pOldEncodedData.reset(null);
 
        std::unique_ptr< ByteBuffer > pNewEncodedData(newCert.GetEncodedDataN());
        SysTryReturnResult(NID_SEC_CERT, pNewEncodedData != null, E_INVALID_ARG, "Failed to get encoded data on new input certificate.");