Skip to content

reject out-of-range POSIX offsets in GetTransitionType - #369

Open
rajath201 wants to merge 1 commit into
google:masterfrom
rajath201:posix-offset-bound
Open

reject out-of-range POSIX offsets in GetTransitionType#369
rajath201 wants to merge 1 commit into
google:masterfrom
rajath201:posix-offset-bound

Conversation

@rajath201

Copy link
Copy Markdown
Contributor

TimeZoneInfo::Load rejects any file-supplied transition type whose UTC offset is a day or more from UTC (utc_offset >= kSecsPerDay || <= -kSecsPerDay), but the types built from a version-2+ TZif POSIX footer never hit that bound. ParsePosixSpec accepts an std/dst offset field up to 24:59:59, so a footer like EST5EDT24:30:00,M3.2.0,M11.1.0 loads fine and its summer lookups return an offset of -88200s (24.5h) that the binary reader would have refused.

GetTransitionType is the one spot where the POSIX path turns an offset into a stored type, so the same range check goes there and covers both the std and dst offsets. Keeping it in the shared helper instead of ExtendTransitions avoids validating the default dst offset of a std-only spec, which is never stored.

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