Issue 24142: ConfigParser._read doesn't join multi-line values collected while reading if a ParsingError occured (original) (raw)

Created on 2015-05-07 15:54 by fhoech, last changed 2022-04-11 14:58 by admin. This issue is now closed.

Files
File name Uploaded Description Edit
ConfigParser.py.patch fhoech,2015-05-07 15:54
Pull Requests
URL Status Linked Edit
PR 552 closed dstufft,2017-03-31 16:36
Messages (10)
msg242718 - (view) Author: Florian Höch (fhoech) * Date: 2015-05-07 15:54
If a ParsingError occurs while reading a config file, the multi-line values collected while reading will never be joined because the error is raised before this can happen. This leads to very unexpected results, e.g. consider the following config.ini: [DEFAULT] test = test invalid >>> cfg = ConfigParser.ConfigParser() >>> cfg.read(['config.ini']) This will raise a ParsingError as expected. But the option values that were parsed without error are now all lists instead of strings: >>> cfg.get('DEFAULT', test') ['test'] Patch attached.
msg242719 - (view) Author: Florian Höch (fhoech) * Date: 2015-05-07 15:58
[Btw, you might want to fix the contributor agreement form - I can't sign it because it shows no text, so I don't know what I'm supposed to enter in the fields (Firefox 37.0.2)]
msg242725 - (view) Author: Ned Deily (ned.deily) * (Python committer) Date: 2015-05-07 18:53
[Thanks for the headsup about the contributor agreement form, now reported as https://github.com/python/pythondotorg/issues/747]
msg272120 - (view) Author: Florian Höch (fhoech) * Date: 2016-08-07 13:04
It seems this hasn't landed yet?
msg281802 - (view) Author: Roundup Robot (python-dev) (Python triager) Date: 2016-11-26 22:05
New changeset 40567b8e3478 by Łukasz Langa in branch '3.5': Fixes #24142: [configparser] always join multiline values to not leave the parser in an invalid state https://hg.python.org/cpython/rev/40567b8e3478 New changeset 306cfb866399 by Łukasz Langa in branch '3.6': Merge 3.5, fix for #24142 https://hg.python.org/cpython/rev/306cfb866399 New changeset 876bee0bd0ba by Łukasz Langa in branch 'default': Merge 3.6, fix for #24142 https://hg.python.org/cpython/rev/876bee0bd0ba
msg281803 - (view) Author: Łukasz Langa (lukasz.langa) * (Python committer) Date: 2016-11-26 22:06
Thanks for your patch! As you can see, 2.7 is no longer touched as the codebases diverged. I'll release a 3.6 backport on PyPI sometime this weekend that you can use.
msg281804 - (view) Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) Date: 2016-11-26 23:27
Is this release critical for 3.6.0?
msg281809 - (view) Author: Ned Deily (ned.deily) * (Python committer) Date: 2016-11-27 03:18
After discussing this offline with Łukasz, I'm going to take the risk of allowing the non-conforming 3.6 checkin to remain in for 3.6.0.
msg281839 - (view) Author: Florian Höch (fhoech) * Date: 2016-11-28 00:34
> Thanks for your patch! As you can see, 2.7 is no longer touched as the codebases diverged. Thanks, although I have to say it's a little bit unfortunate that Python 2.7 will be left in a worse state than 2.6 where this bug did not exist.
msg281846 - (view) Author: Serhiy Storchaka (serhiy.storchaka) * (Python committer) Date: 2016-11-28 08:20
Would be nice to add Misc/NEWS entry for this patch.
History
Date User Action Args
2022-04-11 14:58:16 admin set github: 68330
2017-03-31 16:36:32 dstufft set pull_requests: + <pull%5Frequest1059>
2016-11-28 08:20:57 serhiy.storchaka set messages: +
2016-11-28 00:34:29 fhoech set messages: +
2016-11-27 03🔞10 ned.deily set nosy: + ned.deilymessages: +
2016-11-26 23:27:00 serhiy.storchaka set nosy: + serhiy.storchakamessages: +
2016-11-26 22:06:53 lukasz.langa set status: open -> closedresolution: fixedmessages: + versions: + Python 3.5, Python 3.6, Python 3.7, - Python 2.7
2016-11-26 22:05:47 python-dev set nosy: + python-devmessages: +
2016-08-07 13:04:08 fhoech set messages: +
2015-09-04 17:43:14 lukasz.langa set assignee: lukasz.langa
2015-05-07 18:53:23 ned.deily set nosy: - ned.deily
2015-05-07 18:53:09 ned.deily set nosy: + ned.deilymessages: +
2015-05-07 16:46:31 r.david.murray set nosy: + lukasz.langa
2015-05-07 15:58:22 fhoech set messages: +
2015-05-07 15:54:46 fhoech create