Fix INTEGER_OVERFLOW, NULL_RETURNS & FORWARD_NULL defects 65/324965/4 accepted/tizen_unified accepted/tizen_unified_x tizen accepted/tizen/unified/20250604.163020 accepted/tizen/unified/x/20250604.211400
authortranthanhtung2001 <tran.tung@samsung.com>
Thu, 29 May 2025 09:52:46 +0000 (16:52 +0700)
committertung tran <tran.tung@samsung.com>
Fri, 30 May 2025 02:41:40 +0000 (02:41 +0000)
Change-Id: I88db3f94f6305e852c7effb88cff74286216e1cb

src/vcore/api.cpp
tests/dpl/src/binary_queue.cpp
tests/dpl/src/errno_string.cpp
unit-tests/test_vcore_api_cert.cpp

index 0fd6653662fdddad88980fd2ba9d5c62c51dd708..ec8e08cf1a1efefe2e834b796ad0eda2fe6f9634 100644 (file)
@@ -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);
index d14c5d86ce58b8f35f861efdd18b77c6bebe79aa..3f5bad22c5933c6d58c19d4f751d8d09447c7ee8 100644 (file)
@@ -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);
index 0b87ad1b63500a6085ab29dff5275a48d9ec060d..5774d9e7f681fb91846c76a9769217406940430f 100644 (file)
@@ -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:
index af48eb7266b382d2e66ed15989ffe4541a1761eb..dd2c11c913279b56c07435616172fa6860833c24 100644 (file)
@@ -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);