From: tranthanhtung2001 Date: Thu, 29 May 2025 09:52:46 +0000 (+0700) Subject: Fix INTEGER_OVERFLOW, NULL_RETURNS & FORWARD_NULL defects X-Git-Tag: accepted/tizen/unified/20250604.163020^0 X-Git-Url: http://review.tizen.org/git/?a=commitdiff_plain;h=e52096d44e18238b3f402538f82d21be77d74dbc;p=platform%2Fcore%2Fsecurity%2Fcert-svc.git Fix INTEGER_OVERFLOW, NULL_RETURNS & FORWARD_NULL defects Change-Id: I88db3f94f6305e852c7effb88cff74286216e1cb --- diff --git a/src/vcore/api.cpp b/src/vcore/api.cpp index 0fd6653..ec8e08c 100644 --- a/src/vcore/api.cpp +++ b/src/vcore/api.cpp @@ -544,7 +544,7 @@ public: { auto it = m_certificateMap.find(certificate.privateHandler); - if (it == m_certificateMap.end()) { + if (it == m_certificateMap.end() || location == nullptr) { return CERTSVC_WRONG_ARGUMENT; } @@ -1145,6 +1145,9 @@ int certsvc_certificate_new_from_file( CertSvcCertificate *certificate) { try { + if (location == nullptr) + return CERTSVC_FAIL; + CertificatePtr cert = Certificate::createFromFile(location); certificate->privateInstance = instance; certificate->privateHandler = impl(instance)->addCert(cert); diff --git a/tests/dpl/src/binary_queue.cpp b/tests/dpl/src/binary_queue.cpp index d14c5d8..3f5bad2 100644 --- a/tests/dpl/src/binary_queue.cpp +++ b/tests/dpl/src/binary_queue.cpp @@ -286,6 +286,9 @@ BinaryQueueAutoPtr BinaryQueue::Read(size_t size) } BinaryQueueAutoPtr result(new BinaryQueue()); + if (bufferCopy.Get() == nullptr) + return BinaryQueueAutoPtr(); + Flatten(bufferCopy.Get(), available); result->AppendUnmanaged( bufferCopy.Get(), available, &BufferDeleterFree, NULL); diff --git a/tests/dpl/src/errno_string.cpp b/tests/dpl/src/errno_string.cpp index 0b87ad1..5774d9e 100644 --- a/tests/dpl/src/errno_string.cpp +++ b/tests/dpl/src/errno_string.cpp @@ -86,7 +86,8 @@ std::string GetErrnoString(int error) case ERANGE: // Incease buffer size and retry - size <<= 1; + if ((1UL << 31) > size) + size <<= 1; continue; default: diff --git a/unit-tests/test_vcore_api_cert.cpp b/unit-tests/test_vcore_api_cert.cpp index af48eb7..dd2c11c 100644 --- a/unit-tests/test_vcore_api_cert.cpp +++ b/unit-tests/test_vcore_api_cert.cpp @@ -287,7 +287,7 @@ NEGATIVE_TEST_CASE(T_certsvc_certificate_save_file_from_memory_wrong_location) makeCertificateFromMemory(instance, ServerCertInfo::FullFieldCertPem, certificate); result = certsvc_certificate_save_file(certificate, location); - BOOST_CHECK_EQUAL(result, CERTSVC_FAIL); + BOOST_CHECK_EQUAL(result, CERTSVC_WRONG_ARGUMENT); certsvc_certificate_free(certificate); certsvc_instance_free(instance);