Yes, thank you. <br><br>On Saturday, December 20, 2014, Rolf Eike Beer <<a href="mailto:eike@sf-mail.de">eike@sf-mail.de</a>> wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">Justin Borodinsky wrote:<br>
> I received a bad alloc when uploading a large file with CTest. The patch<br>
> below resolved this.<br>
<br>
Your patch is line-wrapped and can't be applied. However, I did this by hand.<br>
This is basically the same, but it avoids the needless floating point<br>
arithmetic. Does it work for you?<br>
<br>
diff --git a/Source/cmCTest.cxx b/Source/cmCTest.cxx<br>
index 2bf7b77..1a7bf45 100644<br>
--- a/Source/cmCTest.cxx<br>
+++ b/Source/cmCTest.cxx<br>
@@ -1688,7 +1688,7 @@ std::string cmCTest::Base64GzipEncodeFile(std::string file)<br>
//----------------------------------------------------------------------<br>
std::string cmCTest::Base64EncodeFile(std::string file)<br>
{<br>
- long len = cmSystemTools::FileLength(file);<br>
+ const size_t len = cmSystemTools::FileLength(file);<br>
cmsys::ifstream ifs(file.c_str(), std::ios::in<br>
#ifdef _WIN32<br>
| std::ios::binary<br>
@@ -1699,8 +1699,7 @@ std::string cmCTest::Base64EncodeFile(std::string file)<br>
ifs.close();<br>
<br>
unsigned char *encoded_buffer<br>
- = new unsigned char [ static_cast<int>(<br>
- static_cast<double>(len) * 1.5 + 5.0) ];<br>
+ = new unsigned char [ (len * 3) / 2 + 5 ];<br>
<br>
unsigned long rlen<br>
= cmsysBase64_Encode(file_buffer, len, encoded_buffer, 1);<br>
<br>
<br>
<br>
Eike<br>
-- </blockquote>