Skip to content

reject out-of-range minute and second fields in FixedOffsetFromName - #368

Open
rajath201 wants to merge 1 commit into
google:masterfrom
rajath201:fixed-offset-field-range
Open

reject out-of-range minute and second fields in FixedOffsetFromName#368
rajath201 wants to merge 1 commit into
google:masterfrom
rajath201:fixed-offset-field-range

Conversation

@rajath201

Copy link
Copy Markdown
Contributor

FixedOffsetFromName parses a Fixed/UTC+hh:mm:ss name but only bounds the aggregate offset against 24h, never the individual minute and second fields. Parse02d returns any two digits, so a name like Fixed/UTC+00:60:00 or Fixed/UTC+00:00:99 loads and reports a shifted offset (+01:00:00 and +00:01:39 here) even though FixedOffsetToName never emits a field past 59. That one-way acceptance breaks the FixedOffsetToName/FixedOffsetFromName round trip the fixed-zone names depend on.

Reject a minute or second field above 59 where it is parsed. The sibling offset parsers (ParseOffset in time_zone_posix.cc and time_zone_format.cc) already clamp each field to 0-59 through ParseInt, so applying the same per-field bound here lines the fixed-name reader up with them and keeps the check next to the value it validates. Valid names, including the +24:00:00 upper bound, load exactly as before.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant