summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorElliott Hughes <enh@google.com>2015-11-13 06:07:55 +0100
committerElliott Hughes <enh@google.com>2015-11-13 06:07:55 +0100
commit63b089e3aa9302206fbfa8260804e501e6483b83 (patch)
treecd94fb1681bc08f6dac3f34e9a7f003742441e5c
parentMerge "uncrypt: remove O_SYNC to avoid time-out failures" (diff)
downloadandroid_bootable_recovery-63b089e3aa9302206fbfa8260804e501e6483b83.tar
android_bootable_recovery-63b089e3aa9302206fbfa8260804e501e6483b83.tar.gz
android_bootable_recovery-63b089e3aa9302206fbfa8260804e501e6483b83.tar.bz2
android_bootable_recovery-63b089e3aa9302206fbfa8260804e501e6483b83.tar.lz
android_bootable_recovery-63b089e3aa9302206fbfa8260804e501e6483b83.tar.xz
android_bootable_recovery-63b089e3aa9302206fbfa8260804e501e6483b83.tar.zst
android_bootable_recovery-63b089e3aa9302206fbfa8260804e501e6483b83.zip
-rw-r--r--uncrypt/uncrypt.cpp10
-rw-r--r--unique_fd.h11
2 files changed, 5 insertions, 16 deletions
diff --git a/uncrypt/uncrypt.cpp b/uncrypt/uncrypt.cpp
index 6db438258..4956cc297 100644
--- a/uncrypt/uncrypt.cpp
+++ b/uncrypt/uncrypt.cpp
@@ -186,8 +186,7 @@ static int produce_block_map(const char* path, const char* map_file, const char*
ALOGE("failed to open %s\n", map_file);
return -1;
}
- FILE* mapf = fdopen(mapfd, "w");
- unique_file mapf_holder(mapf);
+ std::unique_ptr<FILE, int(*)(FILE*)> mapf(fdopen(mapfd, "w"), fclose);
// Make sure we can write to the status_file.
if (!android::base::WriteStringToFd("0\n", status_fd)) {
@@ -212,7 +211,8 @@ static int produce_block_map(const char* path, const char* map_file, const char*
ranges[0] = -1;
ranges[1] = -1;
- fprintf(mapf, "%s\n%lld %lu\n", blk_dev, (long long)sb.st_size, (unsigned long)sb.st_blksize);
+ fprintf(mapf.get(), "%s\n%lld %lu\n",
+ blk_dev, (long long)sb.st_size, (unsigned long)sb.st_blksize);
unsigned char* buffers[WINDOW_SIZE];
if (encrypted) {
@@ -309,9 +309,9 @@ static int produce_block_map(const char* path, const char* map_file, const char*
++head_block;
}
- fprintf(mapf, "%d\n", range_used);
+ fprintf(mapf.get(), "%d\n", range_used);
for (int i = 0; i < range_used; ++i) {
- fprintf(mapf, "%d %d\n", ranges[i*2], ranges[i*2+1]);
+ fprintf(mapf.get(), "%d %d\n", ranges[i*2], ranges[i*2+1]);
}
if (fsync(mapfd) == -1) {
diff --git a/unique_fd.h b/unique_fd.h
index 98a7c7b67..cc85383f8 100644
--- a/unique_fd.h
+++ b/unique_fd.h
@@ -59,15 +59,4 @@ class unique_fd {
unique_fd& operator=(const unique_fd&) = delete;
};
-// Custom deleter for unique_file to avoid fclose(NULL).
-struct safe_fclose {
- void operator()(FILE *fp) const {
- if (fp) {
- fclose(fp);
- };
- }
-};
-
-using unique_file = std::unique_ptr<FILE, safe_fclose>;
-
#endif // UNIQUE_FD_H