diff --git a/autogpt/commands/execute_code.py b/autogpt/commands/execute_code.py index 20c5e1a27e79..8826e47829c0 100644 --- a/autogpt/commands/execute_code.py +++ b/autogpt/commands/execute_code.py @@ -109,7 +109,7 @@ def validate_command(command: str, config: Config) -> bool: if not tokens: return False - if config.deny_commands and tokens[0] not in config.deny_commands: + if config.deny_commands and tokens[0] in config.deny_commands: return False for keyword in config.allow_commands: diff --git a/tests/integration/test_execute_code.py b/tests/integration/test_execute_code.py index c75d66fa7b91..fa3cf2591b88 100644 --- a/tests/integration/test_execute_code.py +++ b/tests/integration/test_execute_code.py @@ -48,3 +48,11 @@ def test_execute_python_file_invalid(config): def test_execute_shell(config_allow_execute, random_string, config): result = sut.execute_shell(f"echo 'Hello {random_string}!'", config) assert f"Hello {random_string}!" in result + + +def test_execute_shell_deny_command( + python_test_file: str, config_allow_execute: bool, config: Config +): + config.deny_commands = ["echo"] + result = sut.execute_shell(f"echo 'Hello {random_string}!'", config) + assert "Error:" in result and "not allowed" in result