[3.7] bpo-34454: fix .fromisoformat() methods crashing on inputs with surrogate code points (GH-8862) #8877
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The current C implementations crash if the input includes a surrogate
Unicode code point, which is not possible to encode in UTF-8.
Important notes:
.isoformat()
methods.datetime.fromisoformat()
implementation acceptsstrings with a surrogate as the separator.
In
datetime.fromisoformat()
, in the special case of non-UTF-8 separators,this implementation will take a performance hit by making a copy of the
input string and replacing the separator with 'T'.
Co-authored-by: Alexey Izbyshev [email protected]
Co-authored-by: Paul Ganssle [email protected]
(cherry picked from commit 096329f)
Co-authored-by: Paul Ganssle [email protected]
https://bugs.python.org/issue34454