Browse Source

Add an assert to ensure limit is <=32bit

Signed-off-by: Jake Smith <jake.smith@lexisnexis.com>
Jake Smith 12 years ago
parent
commit
6b9534f906
2 changed files with 2 additions and 0 deletions
  1. 1 0
      ecl/hthor/hthor.cpp
  2. 1 0
      thorlcr/activities/wuidwrite/thwuidwrite.cpp

+ 1 - 0
ecl/hthor/hthor.cpp

@@ -5775,6 +5775,7 @@ void CHThorWorkUnitWriteActivity::execute()
     size32_t outputLimit = agent.queryWorkUnit()->getDebugValueInt("outputLimit", defaultWorkUnitWriteLimit);
     if (outputLimit>DALI_RESULT_OUTPUTMAX)
         throw MakeStringException(0, "Dali result outputs are restricted to a maximum of %d MB, the default limit is %d MB. A huge dali result usually indicates the ECL needs altering.", DALI_RESULT_OUTPUTMAX, defaultWorkUnitWriteLimit);
+    assertex(outputLimit<=0x1000); // 32bit limit because MemoryBuffer/CMessageBuffers involved etc.
     outputLimit *= 0x100000;
     MemoryBuffer rowdata;
     __int64 rows = 0;

+ 1 - 0
thorlcr/activities/wuidwrite/thwuidwrite.cpp

@@ -53,6 +53,7 @@ public:
         workunitWriteLimit = getOptInt(THOROPT_OUTPUTLIMIT, DEFAULT_WUIDWRITE_LIMIT);
         if (workunitWriteLimit>DALI_RESULT_OUTPUTMAX)
             throw MakeActivityException(this, 0, "Dali result outputs are restricted to a maximum of %d MB, the default limit is %d MB. A huge dali result usually indicates the ECL needs altering.", DALI_RESULT_OUTPUTMAX, DEFAULT_WUIDWRITE_LIMIT);
+        assertex(workunitWriteLimit<=0x1000); // 32bit limit because MemoryBuffer/CMessageBuffers involved etc.
         workunitWriteLimit *= 0x100000;
 
         if (appendOutput)