-
-
Notifications
You must be signed in to change notification settings - Fork 33.2k
Open
Labels
stdlibStandard Library Python modules in the Lib/ directoryStandard Library Python modules in the Lib/ directorytype-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error
Description
Bug report
Bug description:
This is probably a duplicate of bug 107625, but I do not have a recent enough version of Python to check the behaviour.
Whether it is worth specially detecting conflict markers is something the code owners can decide.
To reproduce:
/tmp/py
:
#!/usr/bin/python3
import configparser
import sys
sl = configparser.ConfigParser(allow_no_value=True)
sl.read_file(sys.stdin)
/tmp/z
:
[list]
<<<<<<<< HEAD (f12435 blah)
foo
|||||||| BASE
bar
========
baz
>>>>>>>> CHANGE (faa768 blah)
$ </tmp/z /tmp/py
Traceback (most recent call last):
File "/tmp/py", line 7, in <module>
sl.read_file(sys.stdin)
File "/usr/lib/python3.11/configparser.py", line 734, in read_file
self._read(f, source)
File "/usr/lib/python3.11/configparser.py", line 1077, in _read
cursect[optname].append(value)
^^^^^^^^^^^^^^^^^^^^^^^
AttributeError: 'NoneType' object has no attribute 'append'
Notes:
sys.stdin
seems to be needed to trigger this - deserves further investigation because it may point to a bad assumption or similar in the parserallow_no_value
is needed to trigger this
Finger of blame:
if (cursect is not None and optname and
cur_indent_level > indent_level):
cursect[optname].append(value)
This does not check that cursect[optname]
is present.
CPython versions tested on:
3.10, 3.11, 3.12
Operating systems tested on:
Linux
Metadata
Metadata
Assignees
Labels
stdlibStandard Library Python modules in the Lib/ directoryStandard Library Python modules in the Lib/ directorytype-bugAn unexpected behavior, bug, or errorAn unexpected behavior, bug, or error