diff options
author | Tianjie Xu <xunchang@google.com> | 2017-03-22 00:24:57 +0100 |
---|---|---|
committer | Tianjie Xu <xunchang@google.com> | 2017-03-22 01:40:01 +0100 |
commit | a946b9e2419e0d7f29a52a047c70857eb9251cbd (patch) | |
tree | 803ea204f01e2293e2a1e3b3be981a3788b181ac /updater/blockimg.cpp | |
parent | Merge "Add testcases for load_keys()." (diff) | |
download | android_bootable_recovery-a946b9e2419e0d7f29a52a047c70857eb9251cbd.tar android_bootable_recovery-a946b9e2419e0d7f29a52a047c70857eb9251cbd.tar.gz android_bootable_recovery-a946b9e2419e0d7f29a52a047c70857eb9251cbd.tar.bz2 android_bootable_recovery-a946b9e2419e0d7f29a52a047c70857eb9251cbd.tar.lz android_bootable_recovery-a946b9e2419e0d7f29a52a047c70857eb9251cbd.tar.xz android_bootable_recovery-a946b9e2419e0d7f29a52a047c70857eb9251cbd.tar.zst android_bootable_recovery-a946b9e2419e0d7f29a52a047c70857eb9251cbd.zip |
Diffstat (limited to 'updater/blockimg.cpp')
-rw-r--r-- | updater/blockimg.cpp | 12 |
1 files changed, 12 insertions, 0 deletions
diff --git a/updater/blockimg.cpp b/updater/blockimg.cpp index 0fa83d9d5..8dbd8c7d1 100644 --- a/updater/blockimg.cpp +++ b/updater/blockimg.cpp @@ -44,6 +44,7 @@ #include <android-base/unique_fd.h> #include <applypatch/applypatch.h> #include <openssl/sha.h> +#include <private/android_filesystem_config.h> #include <ziparchive/zip_archive.h> #include "edify/expr.h" @@ -772,6 +773,11 @@ static int WriteStash(const std::string& base, const std::string& id, int blocks return -1; } + if (fchown(fd, AID_SYSTEM, AID_SYSTEM) != 0) { // system user + PLOG(ERROR) << "failed to chown \"" << fn << "\""; + return -1; + } + if (write_all(fd, buffer, blocks * BLOCKSIZE) == -1) { return -1; } @@ -841,6 +847,12 @@ static int CreateStash(State* state, size_t maxblocks, const std::string& blockd return -1; } + if (chown(dirname.c_str(), AID_SYSTEM, AID_SYSTEM) != 0) { // system user + ErrorAbort(state, kStashCreationFailure, "chown \"%s\" failed: %s\n", dirname.c_str(), + strerror(errno)); + return -1; + } + if (CacheSizeCheck(max_stash_size) != 0) { ErrorAbort(state, kStashCreationFailure, "not enough space for stash (%zu needed)\n", max_stash_size); |