adbd: spawn login shell when run without a command.
Match openssh's behavior with regards to login shells. Bug: http://b/76116378 Test: `adb shell -T set -o` vs `ssh localhost -T set -o` Test: `adb shell -tt set -o` vs `ssh localhost -tt set -o` Test: `echo set -o | adb shell -T` vs `echo set -o | ssh localhost -T` Test: `echo set -o | adb shell -tt` vs `echo set -o | ssh localhost -tt` Change-Id: I6ed69b43e2ac79c947c242948b5617ece08a713e
This commit is contained in:
parent
ef454589e4
commit
8f7ff94762
|
@ -335,7 +335,8 @@ bool Subprocess::ForkAndExec(std::string* error) {
|
|||
signal(SIGPIPE, SIG_DFL);
|
||||
|
||||
if (command_.empty()) {
|
||||
execle(_PATH_BSHELL, _PATH_BSHELL, "-", nullptr, cenv.data());
|
||||
// Spawn a login shell if we don't have a command.
|
||||
execle(_PATH_BSHELL, "-" _PATH_BSHELL, nullptr, cenv.data());
|
||||
} else {
|
||||
execle(_PATH_BSHELL, _PATH_BSHELL, "-c", command_.c_str(), nullptr, cenv.data());
|
||||
}
|
||||
|
|
Loading…
Reference in New Issue