diff options
-rw-r--r-- | init/action.cpp | 5 | ||||
-rw-r--r-- | init/builtins.cpp | 6 |
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; |