diff options
author | Bill Peckham <bpeckham@google.com> | 2019-03-29 02:42:13 +0100 |
---|---|---|
committer | Bill Peckham <bpeckham@google.com> | 2019-03-29 02:42:13 +0100 |
commit | 08ba1ad9b1a6406a67feddeff211387225ccd603 (patch) | |
tree | c239a341f606b9f8814e6895d2e44aafbd917ec4 | |
parent | Merge "Remove the extern declaration of `sehandle` from roots.cpp." (diff) | |
download | android_bootable_recovery-08ba1ad9b1a6406a67feddeff211387225ccd603.tar android_bootable_recovery-08ba1ad9b1a6406a67feddeff211387225ccd603.tar.gz android_bootable_recovery-08ba1ad9b1a6406a67feddeff211387225ccd603.tar.bz2 android_bootable_recovery-08ba1ad9b1a6406a67feddeff211387225ccd603.tar.lz android_bootable_recovery-08ba1ad9b1a6406a67feddeff211387225ccd603.tar.xz android_bootable_recovery-08ba1ad9b1a6406a67feddeff211387225ccd603.tar.zst android_bootable_recovery-08ba1ad9b1a6406a67feddeff211387225ccd603.zip |
-rw-r--r-- | install.cpp | 4 |
1 files changed, 3 insertions, 1 deletions
diff --git a/install.cpp b/install.cpp index b7fb78878..ffa39e46b 100644 --- a/install.cpp +++ b/install.cpp @@ -342,7 +342,9 @@ static int try_update_binary(const std::string& package, ZipArchiveHandle zip, b // The updater in child process writes to the pipe to communicate with recovery. android::base::unique_fd pipe_read, pipe_write; - if (!android::base::Pipe(&pipe_read, &pipe_write)) { + // Explicitly disable O_CLOEXEC using 0 as the flags (last) parameter to Pipe + // so that the child updater process will recieve a non-closed fd. + if (!android::base::Pipe(&pipe_read, &pipe_write, 0)) { PLOG(ERROR) << "Failed to create pipe for updater-recovery communication"; return INSTALL_CORRUPT; } |