diff options
| author | 2021-03-15 15:07:02 -0700 | |
|---|---|---|
| committer | 2021-03-15 15:07:02 -0700 | |
| commit | e7302f0e50dfe158d3f4771d3e6d2181f5ac0351 (patch) | |
| tree | 74856403c1667f4dc3d54e4780432659fe1094b5 | |
| parent | Merge pull request #1465 from python-discord/gitattributes (diff) | |
Code block: remove null bytes before parsing AST
`ast.parse` raises a ValueError complaining that source code strings
cannot contain null bytes. It seems like they may accidentally get
pasted into Discord by users sometimes.
Diffstat (limited to '')
| -rw-r--r-- | bot/exts/info/codeblock/_parsing.py | 3 | 
1 files changed, 3 insertions, 0 deletions
| diff --git a/bot/exts/info/codeblock/_parsing.py b/bot/exts/info/codeblock/_parsing.py index e35fbca22..73fd11b94 100644 --- a/bot/exts/info/codeblock/_parsing.py +++ b/bot/exts/info/codeblock/_parsing.py @@ -103,6 +103,9 @@ def _is_python_code(content: str) -> bool:      """Return True if `content` is valid Python consisting of more than just expressions."""      log.trace("Checking if content is Python code.")      try: +        # Remove null bytes because they cause ast.parse to raise a ValueError. +        content = content.replace("\x00", "") +          # Attempt to parse the message into an AST node.          # Invalid Python code will raise a SyntaxError.          tree = ast.parse(content) | 
