Skip to content

Fix undefined behaviour in datetime.time.fromisoformat()#111982

Merged
Yhg1s merged 1 commit into
python:mainfrom
Yhg1s:datetime-undefined-behaviour
Nov 11, 2023
Merged

Fix undefined behaviour in datetime.time.fromisoformat()#111982
Yhg1s merged 1 commit into
python:mainfrom
Yhg1s:datetime-undefined-behaviour

Conversation

@Yhg1s

@Yhg1s Yhg1s commented Nov 11, 2023

Copy link
Copy Markdown
Member

Fix undefined behaviour in datetime.time.fromisoformat() when parsing a string without a timezone. 'tzoffset' is not assigned to by parse_isoformat_time if it returns 0, but time_fromisoformat then passes tzoffset to another function, which is undefined behaviour (even if the function in question does not use the value).

string without a timezone. 'tzoffset' is not assigned to by
parse_isoformat_time if it returns 0, but time_fromisoformat then passes
tzoffset to another function, which is undefined behaviour (even if the
function in question does not use the value).
@Yhg1s Yhg1s added skip issue skip news 3.11 only security fixes 3.12 only security fixes labels Nov 11, 2023

@pganssle pganssle left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

This looks like it was always supposed to be assigned zero anyway, I think. Probably either missed the assignment, or was confused about the syntax of defining multiple variables on one line. I would not put either mistake by myself, assuming I wrote this in the first place 😅

@Yhg1s

Yhg1s commented Nov 11, 2023

Copy link
Copy Markdown
Member Author

Yeah, the other call to the two functions (datetime_fromisoformat) does initialize tzoffset, so I assumed it was a mistake :)

@Yhg1s Yhg1s merged commit 21615f7 into python:main Nov 11, 2023
@Yhg1s Yhg1s added needs backport to 3.11 only security fixes needs backport to 3.12 only security fixes and removed 3.11 only security fixes 3.12 only security fixes labels Nov 12, 2023
@miss-islington-app

Copy link
Copy Markdown

Thanks @Yhg1s for the PR 🌮🎉.. I'm working now to backport this PR to: 3.11.
🐍🍒⛏🤖

@miss-islington-app

Copy link
Copy Markdown

Thanks @Yhg1s for the PR 🌮🎉.. I'm working now to backport this PR to: 3.12.
🐍🍒⛏🤖

miss-islington pushed a commit to miss-islington/cpython that referenced this pull request Nov 12, 2023
…1982)

Fix undefined behaviour in datetime.time.fromisoformat() when parsing a string without a timezone. 'tzoffset' is not assigned to by parse_isoformat_time if it returns 0, but time_fromisoformat then passes tzoffset to another function, which is undefined behaviour (even if the function in question does not use the value).
(cherry picked from commit 21615f7)

Co-authored-by: T. Wouters <thomas@python.org>
@bedevere-app

bedevere-app Bot commented Nov 12, 2023

Copy link
Copy Markdown

GH-111991 is a backport of this pull request to the 3.11 branch.

@bedevere-app bedevere-app Bot removed the needs backport to 3.11 only security fixes label Nov 12, 2023
miss-islington pushed a commit to miss-islington/cpython that referenced this pull request Nov 12, 2023
…1982)

Fix undefined behaviour in datetime.time.fromisoformat() when parsing a string without a timezone. 'tzoffset' is not assigned to by parse_isoformat_time if it returns 0, but time_fromisoformat then passes tzoffset to another function, which is undefined behaviour (even if the function in question does not use the value).
(cherry picked from commit 21615f7)

Co-authored-by: T. Wouters <thomas@python.org>
@bedevere-app

bedevere-app Bot commented Nov 12, 2023

Copy link
Copy Markdown

GH-111992 is a backport of this pull request to the 3.12 branch.

@bedevere-app bedevere-app Bot removed the needs backport to 3.12 only security fixes label Nov 12, 2023
Yhg1s added a commit that referenced this pull request Nov 12, 2023
…11982) (#111991)

Fix undefined behaviour in datetime.time.fromisoformat() (GH-111982)

Fix undefined behaviour in datetime.time.fromisoformat() when parsing a string without a timezone. 'tzoffset' is not assigned to by parse_isoformat_time if it returns 0, but time_fromisoformat then passes tzoffset to another function, which is undefined behaviour (even if the function in question does not use the value).
(cherry picked from commit 21615f7)

Co-authored-by: T. Wouters <thomas@python.org>
Yhg1s added a commit that referenced this pull request Nov 12, 2023
…11982) (#111992)

Fix undefined behaviour in datetime.time.fromisoformat() (GH-111982)

Fix undefined behaviour in datetime.time.fromisoformat() when parsing a string without a timezone. 'tzoffset' is not assigned to by parse_isoformat_time if it returns 0, but time_fromisoformat then passes tzoffset to another function, which is undefined behaviour (even if the function in question does not use the value).
(cherry picked from commit 21615f7)

Co-authored-by: T. Wouters <thomas@python.org>
aisk pushed a commit to aisk/cpython that referenced this pull request Feb 11, 2024
Fix undefined behaviour in datetime.time.fromisoformat() when parsing a string without a timezone. 'tzoffset' is not assigned to by parse_isoformat_time if it returns 0, but time_fromisoformat then passes tzoffset to another function, which is undefined behaviour (even if the function in question does not use the value).
Glyphack pushed a commit to Glyphack/cpython that referenced this pull request Sep 2, 2024
Fix undefined behaviour in datetime.time.fromisoformat() when parsing a string without a timezone. 'tzoffset' is not assigned to by parse_isoformat_time if it returns 0, but time_fromisoformat then passes tzoffset to another function, which is undefined behaviour (even if the function in question does not use the value).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants