Fixed a bug in reporting Python code validation (#11522)

- **Description:** fixed a bug in pal-chain when it reports Python
    code validation errors. When node.func does not have any ids, the
    original code tried to print node.func.id in raising ValueError.
- **Issue:** n/a,
- **Dependencies:** no dependencies,
- **Tag maintainer:** @hazzel-cn, @eyurtsev
- **Twitter handle:** @lazyswamp

---------

Co-authored-by: Bagatur <baskaryan@gmail.com>
pull/11684/head^2
Kwanghoon Choi 11 months ago committed by GitHub
parent 9f39c23a13
commit fbb82608cd
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -226,24 +226,26 @@ class PALChain(Chain):
or not code_validations.allow_imports or not code_validations.allow_imports
): ):
for node in ast.walk(code_tree): for node in ast.walk(code_tree):
if ( if (not code_validations.allow_command_exec) and isinstance(
(not code_validations.allow_command_exec) node, ast.Call
and isinstance(node, ast.Call) ):
and ( if (
( hasattr(node.func, "id")
hasattr(node.func, "id") and node.func.id in COMMAND_EXECUTION_FUNCTIONS
and node.func.id in COMMAND_EXECUTION_FUNCTIONS ):
raise ValueError(
f"Found illegal command execution function "
f"{node.func.id} in code {code}"
) )
or (
isinstance(node.func, ast.Attribute) if (
and node.func.attr in COMMAND_EXECUTION_FUNCTIONS isinstance(node.func, ast.Attribute)
and node.func.attr in COMMAND_EXECUTION_FUNCTIONS
):
raise ValueError(
f"Found illegal command execution function "
f"{node.func.attr} in code {code}"
) )
)
):
raise ValueError(
f"Found illegal command execution function "
f"{node.func.id} in code {code}"
)
if (not code_validations.allow_imports) and ( if (not code_validations.allow_imports) and (
isinstance(node, ast.Import) or isinstance(node, ast.ImportFrom) isinstance(node, ast.Import) or isinstance(node, ast.ImportFrom)

Loading…
Cancel
Save