Skip to content

Commit

Permalink
馃悰 FIX: CLI crash on non-utf8 character (#247)
Browse files Browse the repository at this point in the history
Addresses CVE-2023-26302
  • Loading branch information
chrisjsewell committed Feb 22, 2023
1 parent 6491bc2 commit 53ca3e9
Show file tree
Hide file tree
Showing 2 changed files with 8 additions and 1 deletion.
2 changes: 1 addition & 1 deletion markdown_it/cli/parse.py
Expand Up @@ -35,7 +35,7 @@ def convert_file(filename: str) -> None:
Parse a Markdown file and dump the output to stdout.
"""
try:
with open(filename, "r") as fin:
with open(filename, "r", encoding="utf8", errors="ignore") as fin:
rendered = MarkdownIt().render(fin.read())
print(rendered, end="")
except OSError:
Expand Down
7 changes: 7 additions & 0 deletions tests/test_cli.py
Expand Up @@ -20,6 +20,13 @@ def test_parse_fail():
assert exc_info.value.code == 1


def test_non_utf8():
with tempfile.TemporaryDirectory() as tempdir:
path = pathlib.Path(tempdir).joinpath("test.md")
path.write_bytes(b"\x80abc")
assert parse.main([str(path)]) == 0


def test_print_heading():
with patch("builtins.print") as patched:
parse.print_heading()
Expand Down

0 comments on commit 53ca3e9

Please sign in to comment.