adbd: fix spurious close of uninitialized fd.

forkpty only returns an fd on the master side; trying to keep track of
it on both sides is incorrect.

Bug: http://b/27504427
Change-Id: Ia4a454d8490c77738f9c3350a4236b3d99c8758b
(cherry picked from commit fcb063ce37)
This commit is contained in:
Josh Gao 2016-03-04 17:50:10 -08:00
parent 5767d0dd5a
commit 8238dd8499

View file

@ -284,7 +284,9 @@ bool Subprocess::ForkAndExec(std::string* error) {
if (type_ == SubprocessType::kPty) {
int fd;
pid_ = forkpty(&fd, pts_name, nullptr, nullptr);
stdinout_sfd_.Reset(fd);
if (pid_ > 0) {
stdinout_sfd_.Reset(fd);
}
} else {
if (!CreateSocketpair(&stdinout_sfd_, &child_stdinout_sfd)) {
*error = android::base::StringPrintf("failed to create socketpair for stdin/out: %s",