From 3690b61be573d29a8252d10c2cb04215c976eecb Mon Sep 17 00:00:00 2001 From: Archer Bowen Date: Mon, 3 Mar 2025 15:17:04 +0000 Subject: [PATCH] Fixing an issue where if tap-003 were to attempt to change the password of it's starting node an index error would cause a crash. (only if the starting host was the last host in the `account_changes` config option) --- src/primaite/game/agent/scripted_agents/TAP003.py | 8 +++++++- 1 file changed, 7 insertions(+), 1 deletion(-) diff --git a/src/primaite/game/agent/scripted_agents/TAP003.py b/src/primaite/game/agent/scripted_agents/TAP003.py index 1dcebe07..c33c7c1a 100644 --- a/src/primaite/game/agent/scripted_agents/TAP003.py +++ b/src/primaite/game/agent/scripted_agents/TAP003.py @@ -355,7 +355,12 @@ class TAP003(AbstractTAP, discriminator="tap-003"): "new_password": self._next_account_change["new_password"], } self.logger.info("Changing local password.") - self._next_account_change = account_changes.pop(0) + # If statement to catch last host edge case - we don't want cause an IndexError + if len(account_changes) == 0: + self.logger.info("No further account changes required.") + self._next_account_change = None + else: + self._next_account_change = account_changes.pop(0) self._change_password_target_host = self.current_host else: # make sure we are logged in via ssh to remote node @@ -384,6 +389,7 @@ class TAP003(AbstractTAP, discriminator="tap-003"): ], } self.logger.info(f"Changing password on remote node {hostname}") + # If statement to catch last host edge case - we don't want cause an IndexError if len(account_changes) == 0: self.logger.info("No further account changes required.") self._next_account_change = None