summaryrefslogtreecommitdiffstats
path: root/Source
diff options
context:
space:
mode:
authorBrad King <brad.king@kitware.com>2014-07-28 14:35:44 (GMT)
committerCMake Topic Stage <kwrobot@kitware.com>2014-07-28 14:35:44 (GMT)
commit90f6de8a0192eb169be2a7e0ddbe8bce9d6714fb (patch)
tree7764c16616b94b5de1bf1fa447e22758d4cf5132 /Source
parent9303da53ce980bf71df52f3e75ed18f93127d7b9 (diff)
parent57a2df224a4bcf4463937d5e121f917d450c144f (diff)
downloadCMake-90f6de8a0192eb169be2a7e0ddbe8bce9d6714fb.zip
CMake-90f6de8a0192eb169be2a7e0ddbe8bce9d6714fb.tar.gz
CMake-90f6de8a0192eb169be2a7e0ddbe8bce9d6714fb.tar.bz2
Merge topic 'fix_tar_leaks'
57a2df22 Fix memory leaks in extract tar.
Diffstat (limited to 'Source')
-rw-r--r--Source/cmSystemTools.cxx3
1 files changed, 3 insertions, 0 deletions
diff --git a/Source/cmSystemTools.cxx b/Source/cmSystemTools.cxx
index 444e143..fbb4416 100644
--- a/Source/cmSystemTools.cxx
+++ b/Source/cmSystemTools.cxx
@@ -1701,6 +1701,8 @@ bool extract_tar(const char* outFileName, bool verbose,
{
cmSystemTools::Error("Problem with archive_read_open_file(): ",
archive_error_string(a));
+ archive_write_free(ext);
+ archive_read_close(a);
return false;
}
for (;;)
@@ -1776,6 +1778,7 @@ bool extract_tar(const char* outFileName, bool verbose,
}
}
}
+ archive_write_free(ext);
archive_read_close(a);
archive_read_finish(a);
return r == ARCHIVE_EOF || r == ARCHIVE_OK;