From f9d7293d5213e82cd4b1949466f53659f826803b Mon Sep 17 00:00:00 2001 From: Marcin Niesluchowski Date: Fri, 5 Jul 2013 13:27:22 +0200 Subject: [PATCH] Fixing prevent defects in security-server * 63411; Critical; Resource leak; In function SecurityServer::BinaryQueue::AppendUnmanaged( void const*, unsigned int, void (*)(void const*, unsigned int, void *), void *) in src/server2/dpl/core/src/binary_queue.cpp * 63374; Critical; Explicit null dereferenced; In function SecurityServer::SharedMemoryService::readOne(SecurityServer::ConnectionID const&, SecurityServer::SocketBuffer &) in src/server2/service/data-share.cpp [Issue#] SSDWSSP-356 [Bug/Feature] Prevent bugs need to be fixed. [Cause] N/A [Solution] N/A [Verification] Running security-server tests. Change-Id: I816e8b50ff94470256604d37a88a400dbeac59b5 --- src/server2/dpl/core/src/binary_queue.cpp | 8 +++++++- src/server2/service/data-share.cpp | 2 +- 2 files changed, 8 insertions(+), 2 deletions(-) diff --git a/src/server2/dpl/core/src/binary_queue.cpp b/src/server2/dpl/core/src/binary_queue.cpp index 5b99c11..be0c65d 100644 --- a/src/server2/dpl/core/src/binary_queue.cpp +++ b/src/server2/dpl/core/src/binary_queue.cpp @@ -137,7 +137,13 @@ void BinaryQueue::AppendUnmanaged(const void* buffer, } // Just add new bucket with selected deleter - m_buckets.push_back(new Bucket(buffer, bufferSize, deleter, userParam)); + Bucket *bucket = new Bucket(buffer, bufferSize, deleter, userParam); + try { + m_buckets.push_back(bucket); + } catch (const std::bad_alloc &) { + delete bucket; + throw; + } // Increase total queue size m_size += bufferSize; diff --git a/src/server2/service/data-share.cpp b/src/server2/service/data-share.cpp index 21be1d9..3c51112 100644 --- a/src/server2/service/data-share.cpp +++ b/src/server2/service/data-share.cpp @@ -158,8 +158,8 @@ bool SharedMemoryService::readOne(const ConnectionID &conn, SocketBuffer &buffer retCode = SECURITY_SERVER_API_ERROR_ACCESS_DENIED; goto end; } + LogDebug("Access granted. Subject: " << clientLabel << " Provider: " << providerLabel); } - LogDebug("Access granted. Subject: " << clientLabel << " Provider: " << providerLabel); retCode = SECURITY_SERVER_API_SUCCESS; end: free(providerLabel); -- 2.7.4