init: fix undefined behavior in ExecuteCommand am: d67a4abc64

am: 279f3d593f

Change-Id: I56f463ed8b8af57993c180181a63e84f0a0eb49e
This commit is contained in:
Wei Wang 2016-11-17 04:03:28 +00:00 committed by android-build-merger
commit 737d0f5265
2 changed files with 7 additions and 4 deletions

View file

@ -105,7 +105,10 @@ std::size_t Action::NumCommands() const {
} }
void Action::ExecuteOneCommand(std::size_t command) const { void Action::ExecuteOneCommand(std::size_t command) const {
ExecuteCommand(commands_[command]); // We need a copy here since some Command execution may result in
// changing commands_ vector by importing .rc files through parser
Command cmd = commands_[command];
ExecuteCommand(cmd);
} }
void Action::ExecuteAllCommands() const { void Action::ExecuteAllCommands() const {

View file

@ -594,9 +594,9 @@ static int do_mount_all(const std::vector<std::string>& args) {
for (na = args.size() - 1; na > 1; --na) { for (na = args.size() - 1; na > 1; --na) {
if (args[na] == "--early") { if (args[na] == "--early") {
path_arg_end = na; path_arg_end = na;
queue_event = false; queue_event = false;
mount_mode = MOUNT_MODE_EARLY; mount_mode = MOUNT_MODE_EARLY;
} else if (args[na] == "--late") { } else if (args[na] == "--late") {
path_arg_end = na; path_arg_end = na;
import_rc = false; import_rc = false;