[Cmake-commits] [cmake-commits] david.cole committed cmCPackTGZGenerator.cxx 1.22 1.23 cmCPackTarCompressGenerator.cxx 1.10 1.11

cmake-commits at cmake.org cmake-commits at cmake.org
Fri Oct 30 10:31:57 EDT 2009


Update of /cvsroot/CMake/CMake/Source/CPack
In directory public:/mounts/ram/cvs-serv1448/Source/CPack

Modified Files:
	cmCPackTGZGenerator.cxx cmCPackTarCompressGenerator.cxx 
Log Message:
Fix more mismatched new[] / delete[] (eliminate invalid auto_ptr use) to correct valgrind reported memory issues.


Index: cmCPackTGZGenerator.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/CPack/cmCPackTGZGenerator.cxx,v
retrieving revision 1.22
retrieving revision 1.23
diff -C 2 -d -r1.22 -r1.23
*** cmCPackTGZGenerator.cxx	26 Oct 2009 17:49:20 -0000	1.22
--- cmCPackTGZGenerator.cxx	30 Oct 2009 14:31:53 -0000	1.23
***************
*** 219,223 ****
    };
  
!   // Ok, this libtar is not const safe. Make a non-const copy of outFileName
    char* realName = new char[ strlen(outFileName) + 1 ];
    strcpy(realName, outFileName);
--- 219,223 ----
    };
  
!   // This libtar is not const safe. Make a non-const copy of outFileName
    char* realName = new char[ strlen(outFileName) + 1 ];
    strcpy(realName, outFileName);
***************
*** 242,245 ****
--- 242,247 ----
      }
  
+   delete [] realName;
+ 
    std::vector<std::string>::const_iterator fileIt;
    for ( fileIt = files.begin(); fileIt != files.end(); ++ fileIt )
***************
*** 257,261 ****
          << strerror(errno) << std::endl);
        tar_close(t);
-       delete [] realName;
        return 0;
        }
--- 259,262 ----
***************
*** 266,270 ****
        << strerror(errno) << std::endl);
      tar_close(t);
-     delete [] realName;
      return 0;
      }
--- 267,270 ----
***************
*** 274,281 ****
      cmCPackLogger(cmCPackLog::LOG_ERROR, "Problem with tar_close(): "
        << strerror(errno) << std::endl);
-     delete [] realName;
      return 0;
      }
-   delete [] realName;
    return 1;
  }
--- 274,279 ----

Index: cmCPackTarCompressGenerator.cxx
===================================================================
RCS file: /cvsroot/CMake/CMake/Source/CPack/cmCPackTarCompressGenerator.cxx,v
retrieving revision 1.10
retrieving revision 1.11
diff -C 2 -d -r1.10 -r1.11
*** cmCPackTarCompressGenerator.cxx	28 Sep 2009 15:42:51 -0000	1.10
--- cmCPackTarCompressGenerator.cxx	30 Oct 2009 14:31:54 -0000	1.11
***************
*** 24,28 ****
  #include <cmcompress/cmcompress.h>
  #include <libtar/libtar.h>
- #include <memory> // auto_ptr
  #include <fcntl.h>
  #include <errno.h>
--- 24,27 ----
***************
*** 166,172 ****
    };
  
!   // Ok, this libtar is not const safe. for now use auto_ptr hack
    char* realName = new char[ strlen(outFileName) + 1 ];
-   std::auto_ptr<char> realNamePtr(realName);
    strcpy(realName, outFileName);
    int flags = O_WRONLY | O_CREAT;  
--- 165,170 ----
    };
  
!   // This libtar is not const safe. Make a non-const copy of outFileName
    char* realName = new char[ strlen(outFileName) + 1 ];
    strcpy(realName, outFileName);
    int flags = O_WRONLY | O_CREAT;  
***************
*** 186,192 ****
--- 184,193 ----
      cmCPackLogger(cmCPackLog::LOG_ERROR, "Problem with tar_open(): "
        << strerror(errno) << std::endl);
+     delete [] realName;
      return 0;
      }
  
+   delete [] realName;
+ 
    std::vector<std::string>::const_iterator fileIt;
    for ( fileIt = files.begin(); fileIt != files.end(); ++ fileIt )



More information about the Cmake-commits mailing list