diff options
author | Elliott Hughes <enh@google.com> | 2015-11-13 17:27:55 +0100 |
---|---|---|
committer | Gerrit Code Review <noreply-gerritcodereview@google.com> | 2015-11-13 17:27:55 +0100 |
commit | 5c6912148b2143cbdf4cc580c723fac05e9324f8 (patch) | |
tree | cd94fb1681bc08f6dac3f34e9a7f003742441e5c | |
parent | Merge "uncrypt: remove O_SYNC to avoid time-out failures" (diff) | |
parent | We can use fclose directly in std::unique_ptr. (diff) | |
download | android_bootable_recovery-5c6912148b2143cbdf4cc580c723fac05e9324f8.tar android_bootable_recovery-5c6912148b2143cbdf4cc580c723fac05e9324f8.tar.gz android_bootable_recovery-5c6912148b2143cbdf4cc580c723fac05e9324f8.tar.bz2 android_bootable_recovery-5c6912148b2143cbdf4cc580c723fac05e9324f8.tar.lz android_bootable_recovery-5c6912148b2143cbdf4cc580c723fac05e9324f8.tar.xz android_bootable_recovery-5c6912148b2143cbdf4cc580c723fac05e9324f8.tar.zst android_bootable_recovery-5c6912148b2143cbdf4cc580c723fac05e9324f8.zip |
-rw-r--r-- | uncrypt/uncrypt.cpp | 10 | ||||
-rw-r--r-- | unique_fd.h | 11 |
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 |