diff options
author | Kelvin Zhang <zhangkelvin@google.com> | 2021-05-07 14:43:04 +0000 |
---|---|---|
committer | Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com> | 2021-05-07 14:43:04 +0000 |
commit | 5465b60e7b004ced480da2d6f5b47d49b3ca1611 (patch) | |
tree | ee2709f66298be280e0a51c524e2f2777e7dbbbe /common/utils.h | |
parent | e0042ab207ada8e6e8a8e1c84f478744d80f4810 (diff) | |
parent | 15242fd179cb779b1d59c891671a482c8983542a (diff) |
Fix verity discarded bug am: 9105f4baeb am: 15242fd179
Original change: https://android-review.googlesource.com/c/platform/system/update_engine/+/1686865
Change-Id: I763dabc5c8e66f2116a9e5630372a3488e1ceb03
Diffstat (limited to 'common/utils.h')
-rw-r--r-- | common/utils.h | 8 |
1 files changed, 7 insertions, 1 deletions
diff --git a/common/utils.h b/common/utils.h index 5f6e4757..59f236ef 100644 --- a/common/utils.h +++ b/common/utils.h @@ -399,13 +399,19 @@ class ScopedTempFile { // If |open_fd| is true, a writable file descriptor will be opened for this // file. - explicit ScopedTempFile(const std::string& pattern, bool open_fd = false) { + // If |truncate_size| is non-zero, truncate file to that size on creation. + explicit ScopedTempFile(const std::string& pattern, + bool open_fd = false, + size_t truncate_size = 0) { CHECK(utils::MakeTempFile(pattern, &path_, open_fd ? &fd_ : nullptr)); unlinker_.reset(new ScopedPathUnlinker(path_)); if (open_fd) { CHECK_GE(fd_, 0); fd_closer_.reset(new ScopedFdCloser(&fd_)); } + if (truncate_size > 0) { + CHECK_EQ(0, truncate(path_.c_str(), truncate_size)); + } } virtual ~ScopedTempFile() = default; |