You signed in with another tab or window. Reload to refresh your session.You signed out in another tab or window. Reload to refresh your session.You switched accounts on another tab or window. Reload to refresh your session.Dismiss alert
=================================================================
==576215==ERROR: LeakSanitizer: detected memory leaks
Direct leak of 72 byte(s) in 1 object(s) allocated from:
#0 0x7fb60c520cb5 in malloc (/usr/lib/libasan.so.8+0x120cb5) (BuildId: 0b96d08695bbce2da9d4770c29ad2e72fb536f47)#1 0x5600a9805972 in _PyMem_RawMalloc Objects/obmalloc.c:65#2 0x5600a9804d63 in _PyMem_DebugRawAlloc Objects/obmalloc.c:3043#3 0x5600a9804dc7 in _PyMem_DebugRawMalloc Objects/obmalloc.c:3076#4 0x5600a9806748 in _PyMem_DebugMalloc Objects/obmalloc.c:3241#5 0x5600a982ecf3 in PyObject_Malloc Objects/obmalloc.c:1649#6 0x5600a98cdf45 in PyUnicode_New Objects/unicodeobject.c:1318#7 0x5600a98d3471 in unicode_decode_utf8 Objects/unicodeobject.c:5273#8 0x5600a98df566 in PyUnicode_DecodeUTF8Stateful Objects/unicodeobject.c:5381#9 0x5600a96eeb3b in _PyPegen_decode_string Parser/string_parser.c:245#10 0x5600a96ef0b0 in _PyPegen_parse_string Parser/string_parser.c:338#11 0x5600a95ce09e in _PyPegen_constant_from_string Parser/action_helpers.c:1480#12 0x5600a95e9b7a in string_rule Parser/parser.c:17349#13 0x5600a963ed92 in _tmp_156_rule Parser/parser.c:37961#14 0x5600a963f435 in _loop1_82_rule Parser/parser.c:33521#15 0x5600a96486ab in strings_rule Parser/parser.c:17420#16 0x5600a9605530 in atom_rule Parser/parser.c:15361#17 0x5600a9607dce in primary_raw Parser/parser.c:14999#18 0x5600a96083ed in primary_rule Parser/parser.c:14797#19 0x5600a9608da2 in await_primary_rule Parser/parser.c:14751#20 0x5600a960934c in power_rule Parser/parser.c:14627#21 0x5600a960af00 in factor_rule Parser/parser.c:14577#22 0x5600a960d6b4 in term_raw Parser/parser.c:14418#23 0x5600a960dcd3 in term_rule Parser/parser.c:14161#24 0x5600a960e9e5 in sum_raw Parser/parser.c:14114#25 0x5600a960f037 in sum_rule Parser/parser.c:13993#26 0x5600a9610687 in shift_expr_raw Parser/parser.c:13953#27 0x5600a9610cd9 in shift_expr_rule Parser/parser.c:13813#28 0x5600a9611502 in bitwise_and_raw Parser/parser.c:13773#29 0x5600a9611b54 in bitwise_and_rule Parser/parser.c:13691
SUMMARY: AddressSanitizer: 72 byte(s) leaked in 1 allocation(s).
The fix is to call Py_XDECREF before replacing the entries in the SyntaxError object.
Bug report
Bug description:
This is a sub-issue for #146102 and more information can be found here`.
When re-initializing a
SyntaxError(by calling its__init__method), it currently does not decref its prior values. This reproducer crashes with ASan:ASan report
The fix is to call
Py_XDECREFbefore replacing the entries in theSyntaxErrorobject.CPython versions tested on:
CPython main branch
Operating systems tested on:
Linux
Linked PRs
SyntaxError#146251SyntaxError(GH-146251) #146517SyntaxError(GH-146251) #146519