]> git.ipfire.org Git - thirdparty/Python/cpython.git/commit
[3.10] bpo-45494: Fix parser crash when reporting errors involving invalid continuati...
authorŁukasz Langa <lukasz@langa.pl>
Tue, 19 Oct 2021 20:31:18 +0000 (22:31 +0200)
committerGitHub <noreply@github.com>
Tue, 19 Oct 2021 20:31:18 +0000 (22:31 +0200)
commit5c9cab595e56aeb118bff77ece784dbac30b4338
tree35ab9e41afc7da8a42c978848823e2d517d0d5de
parent325b2c223453203b2fa9ce7b9bcebdbef03adf70
[3.10] bpo-45494: Fix parser crash when reporting errors involving invalid continuation characters (GH-28993) (GH-29070)

There are two errors that this commit fixes:

* The parser was not correctly computing the offset and the string
  source for E_LINECONT errors due to the incorrect usage of strtok().
* The parser was not correctly unwinding the call stack when a tokenizer
  exception happened in rules involving optionals ('?', [...]) as we
  always make them return valid results by using the comma operator. We
  need to check first if we don't have an error before continuing..
(cherry picked from commit a106343f632a99c8ebb0136fa140cf189b4a6a57)

Co-authored-by: Pablo Galindo Salgado <Pablogsal@gmail.com>
Lib/test/test_exceptions.py
Misc/NEWS.d/next/Core and Builtins/2021-10-16-17-27-48.bpo-45494.vMt1g4.rst [new file with mode: 0644]
Parser/parser.c
Parser/pegen.c
Tools/peg_generator/pegen/c_generator.py