Index: src/libchcore/TSharedMemory.cpp =================================================================== diff -u -N -r0d5b67ee96b435d63f7bf075dc8e28603793b187 -r776c47d61a5a67d5e2541d58013e221c685460ec --- src/libchcore/TSharedMemory.cpp (.../TSharedMemory.cpp) (revision 0d5b67ee96b435d63f7bf075dc8e28603793b187) +++ src/libchcore/TSharedMemory.cpp (.../TSharedMemory.cpp) (revision 776c47d61a5a67d5e2541d58013e221c685460ec) @@ -95,6 +95,9 @@ void TSharedMemory::Create(const wchar_t* pszName, const BYTE* pbyData, shm_size_t stSize) { + if (!pbyData) + throw TCoreException(eErr_InvalidArgument, L"pbyData is NULL", LOCATION); + Create(pszName, stSize); TIpcMutexLock lock(m_mutex); @@ -203,6 +206,14 @@ return (BYTE*)m_pMappedMemory + sizeof(shm_size_t); } + const BYTE* TSharedMemory::GetFullData() const + { + if (!m_hFileMapping || !m_pMappedMemory || m_stSize <= sizeof(shm_size_t)) + return nullptr; + + return (BYTE*)m_pMappedMemory; + } + TSharedMemory::shm_size_t TSharedMemory::GetSharedMemorySize() const { if (!m_hFileMapping || !m_pMappedMemory)