Merge "init/service.cpp: fix access check for console"

am: 4a3b03e9e5

Change-Id: I69e33c783d8afb7cd7781a8782504f3307b61435
This commit is contained in:
Adrian Salido 2017-01-03 23:30:36 +00:00 committed by android-build-merger
commit 7cc669c493
1 changed files with 6 additions and 3 deletions

View File

@ -582,12 +582,15 @@ bool Service::Start() {
console_ = default_console;
}
bool have_console = (access(console_.c_str(), R_OK | W_OK) != -1);
if (!have_console) {
PLOG(ERROR) << "service '" << name_ << "' cannot gain read/write access to console '" << console_ << "'";
// Make sure that open call succeeds to ensure a console driver is
// properly registered for the device node
int console_fd = open(console_.c_str(), O_RDWR | O_CLOEXEC);
if (console_fd < 0) {
PLOG(ERROR) << "service '" << name_ << "' couldn't open console '" << console_ << "'";
flags_ |= SVC_DISABLED;
return false;
}
close(console_fd);
}
struct stat sb;