[PATCH 0/3] fix local_tzoffset with far-in-future dates
- From
Jeff King <peff@peff.net>
- Date
- Jun 20, 2016, 21:09 UTC
- Message-ID
- <20160620210901.GE3631@sigill.intra.peff.net>
- In-Reply-To
- <20160620200011.GC3631@sigill.intra.peff.net>
On Mon, Jun 20, 2016 at 04:00:12PM -0400, Jeff King wrote:
Show 10 quoted lines
> You _should_ be able to get the right answer by asking git for > --date=local, but it doesn't seem to work. Looks like it is because our > tm_to_time_t hits this code: > > if (year < 0 || year > 129) /* algo only works for 1970-2099 */ > return -1; > > and the caller does not actually check the error. The resulting timezone > is the screwed-up -40643156, which is perhaps how it got into the commit > in the first place.
So here's a patch to fix that (along with some test infrastructure to support it). I still don't know how that screwed-up timestamp got _into_ a commit, so perhaps there is another bug lurking. I couldn't convince git to parse anything beyond 2100, and committing with GIT_AUTHOR_DATE='@5758122296 +0000' works just fine.
[1/3]: t0006: rename test-date's "show" to "relative" [2/3]: t0006: test various date formats [3/3]: local_tzoffset: detect errors from tm_to_time_t
-Peff