diff options
author | Tao Bao <tbao@google.com> | 2017-12-01 10:53:34 -0800 |
---|---|---|
committer | Tao Bao <tbao@google.com> | 2017-12-07 10:01:57 -0800 |
commit | 47e5a8d08569a456981854a194d6dc66b8d85265 (patch) | |
tree | 16c39874bebeeba66be52f582795fb41bd3bc0a2 /applypatch | |
parent | ed369101ba47f5696e13d6c56df27453de2d9151 (diff) | |
download | android_bootable_recovery-47e5a8d08569a456981854a194d6dc66b8d85265.tar.gz android_bootable_recovery-47e5a8d08569a456981854a194d6dc66b8d85265.tar.bz2 android_bootable_recovery-47e5a8d08569a456981854a194d6dc66b8d85265.zip |
applypatch: Remove the 'st' field from FileContents.
It used to keep track of the stat(2) info (e.g. st_mode/st_gid/st_uid)
while patching a file in file-based OTA.
Test: Build and use the new updater to apply an update on bullhead.
Change-Id: Ibf8f0f4b14298a9489bf24a2678bb279c5d9c8f3
Diffstat (limited to 'applypatch')
-rw-r--r-- | applypatch/applypatch.cpp | 18 | ||||
-rw-r--r-- | applypatch/include/applypatch/applypatch.h | 2 |
2 files changed, 3 insertions, 17 deletions
diff --git a/applypatch/applypatch.cpp b/applypatch/applypatch.cpp index 41a72eb1..04b964b1 100644 --- a/applypatch/applypatch.cpp +++ b/applypatch/applypatch.cpp @@ -58,12 +58,13 @@ int LoadFileContents(const char* filename, FileContents* file) { return LoadPartitionContents(filename, file); } - if (stat(filename, &file->st) == -1) { + struct stat sb; + if (stat(filename, &sb) == -1) { printf("failed to stat \"%s\": %s\n", filename, strerror(errno)); return -1; } - std::vector<unsigned char> data(file->st.st_size); + std::vector<unsigned char> data(sb.st_size); unique_file f(ota_fopen(filename, "rb")); if (!f) { printf("failed to open \"%s\": %s\n", filename, strerror(errno)); @@ -180,10 +181,6 @@ static int LoadPartitionContents(const std::string& filename, FileContents* file buffer.resize(buffer_size); file->data = std::move(buffer); - // Fake some stat() info. - file->st.st_mode = 0644; - file->st.st_uid = 0; - file->st.st_gid = 0; return 0; } @@ -212,15 +209,6 @@ int SaveFileContents(const char* filename, const FileContents* file) { return -1; } - if (chmod(filename, file->st.st_mode) != 0) { - printf("chmod of \"%s\" failed: %s\n", filename, strerror(errno)); - return -1; - } - if (chown(filename, file->st.st_uid, file->st.st_gid) != 0) { - printf("chown of \"%s\" failed: %s\n", filename, strerror(errno)); - return -1; - } - return 0; } diff --git a/applypatch/include/applypatch/applypatch.h b/applypatch/include/applypatch/applypatch.h index 6d7ffd78..c8ad9150 100644 --- a/applypatch/include/applypatch/applypatch.h +++ b/applypatch/include/applypatch/applypatch.h @@ -18,7 +18,6 @@ #define _APPLYPATCH_H #include <stdint.h> -#include <sys/stat.h> #include <functional> #include <memory> @@ -33,7 +32,6 @@ struct Value; struct FileContents { uint8_t sha1[SHA_DIGEST_LENGTH]; std::vector<unsigned char> data; - struct stat st; }; // When there isn't enough room on the target filesystem to hold the patched version of the file, |