[cmake-developers] [PATCH] Avoid bad alloc for large files
Justin Borodinsky
justin.borodinsky at gmail.com
Sat Dec 20 08:26:07 EST 2014
I received a bad alloc when uploading a large file with CTest. The patch
below resolved this.
---
Source/cmCTest.cxx | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/Source/cmCTest.cxx b/Source/cmCTest.cxx
index 2bf7b77..52bf651 100644
--- a/Source/cmCTest.cxx
+++ b/Source/cmCTest.cxx
@@ -1688,7 +1688,7 @@ std::string cmCTest::Base64GzipEncodeFile(std::string
file)
//----------------------------------------------------------------------
std::string cmCTest::Base64EncodeFile(std::string file)
{
- long len = cmSystemTools::FileLength(file);
+ std::size_t len =
static_cast<std::size_t>(cmSystemTools::FileLength(file));
cmsys::ifstream ifs(file.c_str(), std::ios::in
#ifdef _WIN32
| std::ios::binary
@@ -1699,7 +1699,7 @@ std::string cmCTest::Base64EncodeFile(std::string
file)
ifs.close();
unsigned char *encoded_buffer
- = new unsigned char [ static_cast<int>(
+ = new unsigned char [ static_cast<std::size_t>(
static_cast<double>(len) * 1.5 + 5.0) ];
unsigned long rlen
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://public.kitware.com/pipermail/cmake-developers/attachments/20141220/075fc4e8/attachment.html>
More information about the cmake-developers
mailing list