AU: Cleanup temporary files created by the update generator.
BUG=chromium-os:18927
TEST=unit tests, tested an update through dev server
Change-Id: I635fa17b2f95323d30d88ac13573b04a0ebca041
Reviewed-on: http://gerrit.chromium.org/gerrit/6830
Tested-by: Darin Petkov <petkov@chromium.org>
Reviewed-by: Andrew de los Reyes <adlr@chromium.org>
diff --git a/delta_diff_generator.cc b/delta_diff_generator.cc
index d4ebc4e..5c5b2ef 100644
--- a/delta_diff_generator.cc
+++ b/delta_diff_generator.cc
@@ -18,6 +18,7 @@
#include <vector>
#include <base/logging.h>
+#include <base/memory/scoped_ptr.h>
#include <base/string_util.h>
#include <bzlib.h>
@@ -1318,6 +1319,7 @@
const string kTempFileTemplate("/tmp/CrAU_temp_data.XXXXXX");
string temp_file_path;
+ scoped_ptr<ScopedPathUnlinker> temp_file_unlinker;
off_t data_file_size = 0;
LOG(INFO) << "Reading files...";
@@ -1330,6 +1332,7 @@
int fd;
TEST_AND_RETURN_FALSE(
utils::MakeTempFile(kTempFileTemplate, &temp_file_path, &fd));
+ temp_file_unlinker.reset(new ScopedPathUnlinker(temp_file_path));
TEST_AND_RETURN_FALSE(fd >= 0);
ScopedFdCloser fd_closer(&fd);
if (!old_image.empty()) {
@@ -1426,9 +1429,11 @@
"/tmp/CrAU_temp_data.ordered.XXXXXX",
&ordered_blobs_path,
NULL));
+ ScopedPathUnlinker ordered_blobs_unlinker(ordered_blobs_path);
TEST_AND_RETURN_FALSE(ReorderDataBlobs(&manifest,
temp_file_path,
ordered_blobs_path));
+ temp_file_unlinker.reset();
// Check that install op blobs are in order.
uint64_t next_blob_offset = 0;