diff OrthancFramework/Sources/MallocMemoryBuffer.cpp @ 4913:c1b19f95e166

fix signature of OrthancPluginReceivedInstanceCallback for ABI compatibility
author Sebastien Jodogne <s.jodogne@gmail.com>
date Tue, 22 Feb 2022 22:12:43 +0100
parents 43e613a7756b
children 0ea402b4d901
line wrap: on
line diff
--- a/OrthancFramework/Sources/MallocMemoryBuffer.cpp	Tue Feb 22 17:46:28 2022 +0100
+++ b/OrthancFramework/Sources/MallocMemoryBuffer.cpp	Tue Feb 22 22:12:43 2022 +0100
@@ -57,11 +57,23 @@
 
     
   void MallocMemoryBuffer::Assign(void* buffer,
-                                  size_t size,
+                                  uint64_t size,
                                   FreeFunction freeFunction)
   {
     Clear();
 
+    if (size != 0 &&
+        buffer == NULL)
+    {
+      throw OrthancException(ErrorCode_NullPointer);
+    }
+
+    if (static_cast<uint64_t>(static_cast<size_t>(size)) != size)
+    {
+      freeFunction(buffer);
+      throw OrthancException(ErrorCode_InternalError, "Buffer larger than 4GB, which is too large for Orthanc running in 32bits");
+    }
+
     buffer_ = buffer;
     size_ = size;
     free_ = freeFunction;