init: set $PATH in second stage init
If the system partition has been updated and _PATH_DEFPATH has a new value, then we must set $PATH in second stage init to take on the new value, as well as having set it in first stage init. Bug: 160210288 Test: build Change-Id: I18765709dc9bff9379b0ae39272199cf74a79d2f
This commit is contained in:
parent
dfdc9b105a
commit
d36f4a36ed
1 changed files with 7 additions and 0 deletions
|
@ -18,6 +18,7 @@
|
|||
|
||||
#include <dirent.h>
|
||||
#include <fcntl.h>
|
||||
#include <paths.h>
|
||||
#include <pthread.h>
|
||||
#include <signal.h>
|
||||
#include <stdlib.h>
|
||||
|
@ -727,6 +728,12 @@ int SecondStageMain(int argc, char** argv) {
|
|||
InitSecondStageLogging(argv);
|
||||
LOG(INFO) << "init second stage started!";
|
||||
|
||||
// Update $PATH in the case the second stage init is newer than first stage init, where it is
|
||||
// first set.
|
||||
if (setenv("PATH", _PATH_DEFPATH, 1) != 0) {
|
||||
PLOG(FATAL) << "Could not set $PATH to '" << _PATH_DEFPATH << "' in second stage";
|
||||
}
|
||||
|
||||
// Init should not crash because of a dependence on any other process, therefore we ignore
|
||||
// SIGPIPE and handle EPIPE at the call site directly. Note that setting a signal to SIG_IGN
|
||||
// is inherited across exec, but custom signal handlers are not. Since we do not want to
|
||||
|
|
Loading…
Reference in a new issue