I found some crashes when adding an additional fuzz target in #111721.
# This script fails with a C assertion failure when assertions are enabled.## I ran this through Python built from source with assertions enabled:## ./configure --with-assertions --prefix "$PWD/debugbuild"# make -j12 altinstall# ./debugbuild/bin/python/crash2.py## I ran this on ARM64 macOS:## Darwin dialectic.local 23.1.0 Darwin Kernel Version 23.1.0: Mon Oct 9 21:27:24 PDT 2023; root:xnu-10002.41.9~6/RELEASE_ARM64_T6000 arm64# Input found via the fuzz target added in https://github.com/python/cpython/pull/111721, then manually minimizeds=b"with(0,,):\n\x01"# This line fails with a C assertion failure:## fuzz_pycompile: Objects/call.c:342: PyObject *_PyObject_Call(PyThreadState *, PyObject *, PyObject *, PyObject *): Assertion `!_PyErr_Occurred(tstate)' failed.#compile(s, 's', 'exec')
CPython versions tested on:
CPython main branch
Operating systems tested on:
macOS
Output from running 'python -VV' on the command line:
Python 3.13.0a1+ (heads/main:3701f3bc10, Nov 24 2023, 23:05:42) [Clang 15.0.0 (clang-1500.0.40.1)]
$ git bisect determined the issue was introduced in 81f4e11.
It appears the "invalid non-printable character" error was identified, but not promptly emitted to the user. Then when the "expected an indented block" error comes around, we see we are about to overwrite an error and we abort.
Activity
bradlarsen commented on Nov 25, 2023
See also #112387
carsonRadtke commented on Nov 25, 2023
$ git bisect determined the issue was introduced in 81f4e11.
It appears the "invalid non-printable character" error was identified, but not promptly emitted to the user. Then when the "expected an indented block" error comes around, we see we are about to overwrite an error and we abort.
hugovk commented on Nov 25, 2023
Thanks for the report and bisecting.
cc @pablogsal
pythongh-112388: Fix an error that was causing the parser to try to o…
pythongh-112388: Fix an error that was causing the parser to try to o…
gh-112388: Fix an error that was causing the parser to try to overwri…
pythongh-112388: Fix an error that was causing the parser to try to o…
pythongh-112388: Fix an error that was causing the parser to try to o…
pablogsal commented on Nov 27, 2023
Thanks for the report!
[3.11] gh-112388: Fix an error that was causing the parser to try to …
[3.12] gh-112388: Fix an error that was causing the parser to try to …
pythongh-112388: Fix an error that was causing the parser to try to o…
pythongh-112388: Fix an error that was causing the parser to try to o…