gh-153677: Fix ValueError in http.cookiejar.http2time() for a strict-format fake month#153678
Open
tonghuaroot wants to merge 2 commits into
Open
gh-153677: Fix ValueError in http.cookiejar.http2time() for a strict-format fake month#153678tonghuaroot wants to merge 2 commits into
tonghuaroot wants to merge 2 commits into
Conversation
…trict-format fake month The STRICT_DATE_RE fast path in http2time() matched date strings whose month field fit the pattern but named a non-existent month (for example "Foo"), then called MONTHS_LOWER.index() which raised a raw ValueError. The documented contract is to return None for unrecognized formats, and the slower parser already does so. Guard the fast-path month lookup and fall through to the slower parser on failure.
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
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.
http2time()documents that it returnsNonefor an unrecognized dateformat, but the
STRICT_DATE_REfast path raised a rawValueErrorwhenthe month field matched the pattern but named a non-existent month (for
example
Foo), becauseMONTHS_LOWER.index()was called unguarded. Theslower parser already returns
Nonefor the same input.Guard the fast-path month lookup and fall through to the slower parser on
failure; valid months are unaffected. This restores the "returns
None,never raises" contract established by gh-60385 for a different code path.