summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--init/action.cpp5
-rw-r--r--init/builtins.cpp6
2 files changed, 7 insertions, 4 deletions
diff --git a/init/action.cpp b/init/action.cpp
index e9b2a0dfe..acbb12e8e 100644
--- a/init/action.cpp
+++ b/init/action.cpp
@@ -105,7 +105,10 @@ std::size_t Action::NumCommands() 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 {
diff --git a/init/builtins.cpp b/init/builtins.cpp
index ebdc8c993..d10f7198e 100644
--- a/init/builtins.cpp
+++ b/init/builtins.cpp
@@ -589,9 +589,9 @@ static int do_mount_all(const std::vector<std::string>& args) {
for (na = args.size() - 1; na > 1; --na) {
if (args[na] == "--early") {
- path_arg_end = na;
- queue_event = false;
- mount_mode = MOUNT_MODE_EARLY;
+ path_arg_end = na;
+ queue_event = false;
+ mount_mode = MOUNT_MODE_EARLY;
} else if (args[na] == "--late") {
path_arg_end = na;
import_rc = false;