[Cmake-commits] CMake branch, next, updated. v3.1.0-1403-gd4e0699

Rolf Eike Beer eike at sf-mail.de
Fri Dec 26 10:24:39 EST 2014


This is an automated email from the git hooks/post-receive script. It was
generated because a ref change was pushed to the repository containing
the project "CMake".

The branch, next has been updated
       via  d4e069935251bb182498ed2b6ca7a8037897a989 (commit)
       via  0bdd4ebfb8303cc46e4a8bbe16f6c7bcc7108e2a (commit)
       via  a9fae8ac1d952ffd3b54de6082f9729466101bb0 (commit)
      from  34cda259eb4546e5b863367fd2a7f8b1779bc438 (commit)

Those revisions listed above that are new to this repository have
not appeared on any other notification email; so we list those
revisions in full, below.

- Log -----------------------------------------------------------------
http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=d4e069935251bb182498ed2b6ca7a8037897a989
commit d4e069935251bb182498ed2b6ca7a8037897a989
Merge: 34cda25 0bdd4eb
Author:     Rolf Eike Beer <eike at sf-mail.de>
AuthorDate: Fri Dec 26 10:24:38 2014 -0500
Commit:     CMake Topic Stage <kwrobot at kitware.com>
CommitDate: Fri Dec 26 10:24:38 2014 -0500

    Merge topic 'base64-casts' into next
    
    0bdd4ebf cmCTest: Use size_t for cmsysBase64_Encode return value
    a9fae8ac CTest: Fix integer overflow when uploading huge files


http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=0bdd4ebfb8303cc46e4a8bbe16f6c7bcc7108e2a
commit 0bdd4ebfb8303cc46e4a8bbe16f6c7bcc7108e2a
Author:     Brad King <brad.king at kitware.com>
AuthorDate: Tue Dec 23 11:26:55 2014 -0500
Commit:     Rolf Eike Beer <eike at sf-mail.de>
CommitDate: Fri Dec 26 16:23:35 2014 +0100

    cmCTest: Use size_t for cmsysBase64_Encode return value

diff --git a/Source/CTest/cmCTestRunTest.cxx b/Source/CTest/cmCTestRunTest.cxx
index 9e3c9fc..ff55528 100644
--- a/Source/CTest/cmCTestRunTest.cxx
+++ b/Source/CTest/cmCTestRunTest.cxx
@@ -116,10 +116,10 @@ void cmCTestRunTest::CompressOutput()
   unsigned char *encoded_buffer
     = new unsigned char[static_cast<int>(outSize * 1.5)];
 
-  unsigned long rlen
+  size_t rlen
     = cmsysBase64_Encode(out, strm.total_out, encoded_buffer, 1);
 
-  for(unsigned long i = 0; i < rlen; i++)
+  for(size_t i = 0; i < rlen; i++)
     {
     this->CompressedOutput += encoded_buffer[i];
     }
diff --git a/Source/CTest/cmCTestTestHandler.cxx b/Source/CTest/cmCTestTestHandler.cxx
index f330e58..8518a90 100644
--- a/Source/CTest/cmCTestTestHandler.cxx
+++ b/Source/CTest/cmCTestTestHandler.cxx
@@ -1976,9 +1976,8 @@ std::string cmCTestTestHandler::GenerateRegressionImages(
             = new unsigned char [ static_cast<int>(
                 static_cast<double>(len) * 1.5 + 5.0) ];
 
-          unsigned long rlen
+          size_t rlen
             = cmsysBase64_Encode(file_buffer, len, encoded_buffer, 1);
-          unsigned long cc;
 
           ostr
             << "\t\t\t<NamedMeasurement"
@@ -1988,7 +1987,7 @@ std::string cmCTestTestHandler::GenerateRegressionImages(
             << measurementfile.match(4) << "\""
             << " encoding=\"base64\""
             << ">" << std::endl << "\t\t\t\t<Value>";
-          for ( cc = 0; cc < rlen; cc ++ )
+          for (size_t cc = 0; cc < rlen; cc ++ )
             {
             ostr << encoded_buffer[cc];
             if ( cc % 60 == 0 && cc )
diff --git a/Source/cmCTest.cxx b/Source/cmCTest.cxx
index 814c4e0..1362a50 100644
--- a/Source/cmCTest.cxx
+++ b/Source/cmCTest.cxx
@@ -1701,11 +1701,11 @@ std::string cmCTest::Base64EncodeFile(std::string file)
   unsigned char *encoded_buffer
     = new unsigned char [ (len * 3) / 2 + 5 ];
 
-  unsigned long rlen
+  size_t const rlen
     = cmsysBase64_Encode(file_buffer, len, encoded_buffer, 1);
 
   std::string base64 = "";
-  for(unsigned long i = 0; i < rlen; i++)
+  for(size_t i = 0; i < rlen; i++)
     {
     base64 += encoded_buffer[i];
     }
@@ -3193,7 +3193,7 @@ bool cmCTest::CompressString(std::string& str)
   unsigned char* base64EncodedBuffer
     = new unsigned char[(outSize * 3) / 2];
 
-  unsigned long rlen
+  size_t rlen
     = cmsysBase64_Encode(out, strm.total_out, base64EncodedBuffer, 1);
 
   str = "";

http://cmake.org/gitweb?p=cmake.git;a=commitdiff;h=a9fae8ac1d952ffd3b54de6082f9729466101bb0
commit a9fae8ac1d952ffd3b54de6082f9729466101bb0
Author:     Rolf Eike Beer <eike at sf-mail.de>
AuthorDate: Mon Dec 22 21:56:14 2014 +0100
Commit:     Rolf Eike Beer <eike at sf-mail.de>
CommitDate: Fri Dec 26 16:23:31 2014 +0100

    CTest: Fix integer overflow when uploading huge files
    
    When uploading files greater 2GB a cast to 'int' overflows, leading to a
    bad alloc when passed to new. Also avoid floating point arithmetic when
    integer calculations will work as well.
    
    Reported-by: Justin Borodinsky <justin.borodinsky at gmail.com>

diff --git a/Source/cmCTest.cxx b/Source/cmCTest.cxx
index 2bf7b77..814c4e0 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);
+  size_t const len = cmSystemTools::FileLength(file);
   cmsys::ifstream ifs(file.c_str(), std::ios::in
 #ifdef _WIN32
     | std::ios::binary
@@ -1699,8 +1699,7 @@ std::string cmCTest::Base64EncodeFile(std::string file)
   ifs.close();
 
   unsigned char *encoded_buffer
-    = new unsigned char [ static_cast<int>(
-        static_cast<double>(len) * 1.5 + 5.0) ];
+    = new unsigned char [ (len * 3) / 2 + 5 ];
 
   unsigned long rlen
     = cmsysBase64_Encode(file_buffer, len, encoded_buffer, 1);
@@ -3192,7 +3191,7 @@ bool cmCTest::CompressString(std::string& str)
 
   // Now base64 encode the resulting binary string
   unsigned char* base64EncodedBuffer
-    = new unsigned char[static_cast<int>(outSize * 1.5)];
+    = new unsigned char[(outSize * 3) / 2];
 
   unsigned long rlen
     = cmsysBase64_Encode(out, strm.total_out, base64EncodedBuffer, 1);

-----------------------------------------------------------------------

Summary of changes:


hooks/post-receive
-- 
CMake


More information about the Cmake-commits mailing list